[转帖]为何 linux 要用 tar.gz,而不用 7z 或 zip?

为何 linux 要用 tar.gz,而不用 7z 或 zip?

http://embeddedlinux.org.cn/emb-linux/entry-level/201908/13-8776.html

原来还有这么一个历史..

因为 7z 和 zip 压缩格式都不能保留 unix 风格的文件权限,比如解压出个可执行文件要重新 chmod chown 才能恢复正常。而 tar 格式可以。而 tar 本身不提供压缩,无非就是把包括所有文件的內容和权限拼成一个文件而己,所以用另外如 gzip 格式压缩。为什么是 gzip,因为几乎所有 linux 都支持而已。

从压缩算法上来说, gz 是 gzip 的缩写,用的压缩算法和 zip 是一路货。

其实现在 Linux 已经转用 tar.xz 了,比如 deb (debian/ubuntu 用的软件包格式)好几年前就用 tar.xz 了。xz 和 7z 也是一路货。

如果你在意的是 tar.gz 是两段,先 tar 再 gz,那是因为 linux 受 unix 哲学「一个工具只做好一件事」的影响。

至于为什么没搞出 tar.zip 这样的东西?这是因为当年 zip 的官方软件是个共享软件,不是自由软件。所以 Linux 不能直接用或者移植。那既然重写的话,就没有必要做的和 zip 一样,毕竟 gz 只用管压缩,不用管打包。

本文永久更新链接:http://embeddedlinux.org.cn/emb-linux/entry-level/201908/13-8776.html

原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/11350142.html

时间: 2024-10-09 20:42:39

[转帖]为何 linux 要用 tar.gz,而不用 7z 或 zip?的相关文章

[Linux] 解压tar.gz文件,解压部分文件

遇到数据库无法查找问题原因,只能找日志,查找日志的时候发现老的日志都被压缩了,只能尝试解压了   数据量比较大,只能在生产解压了,再进行查找 文件名为*.tar.gz,自己博客以前记录过解压方法: http://www.cnblogs.com/garinzhang/archive/2013/04/23/3037147.html 使用tar –zxvf *.tar.gz无法解压,明明好好的tar.gz文件能这样解压的,为什么不能解压?   后来想了想,是不是先要解压*.gz文件,使用gunzip

linux 安装jdk-7u45-linux-x64.tar.gz

1.官网下载jdk-7u45-linux-x64.tar.gz 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2.tar解压:tar -xzvf jdk-7u45-linux-x64.tar.gz 一般安装在/usr/local/目录下 3.配置环境变量: <span style="white-space:pre"> </span>

Linux下安装tar.gz类型的jdk,并配置环境变量

近期因要学习一门技术,必须在Linux下运行,故开始学习如何使用Linux. 在安装jdk时出现了困难,环境变量配置不成功,花了一天时间才搞定,特分享出来,供大家参考. Linux下安装jdk,步骤如下 1:下载jdk包:本章使用的为后缀为tar.gz的文件(不需要安装),如jdk-7u67-linux-i586.tar.gz 2: 把jdk文件保存至Linux下目录:通过控制台,使用mkdir命令生成user/java目录,并把文件放入其下 3:解压tar.gz文件:通过控制台,进入user/

linux下解压.tar.gz .tar.bz2

从网络上下载到的源码包, 最常见的是 .tar.gz 包, 还有一部分是 .tar.bz2包要解压很简单 :.tar.gz     格式解压命令为          tar   -zxvpf   xx.tar.gz.tar.bz2   格式解压命令为          tar   -jxvpf    xx.tar.bz2 //p参数可以保留原文件权限(很重要)

linux 下 jdk tar.gz 包安装方法

JDK安装 tar.gz为解压后就可使用的版本,这里我们将jdk-7u3-linux-i586.tar.gz解压到/usr/local/下. 1.解压 解压到当前目录:$ tar -zxvf /opt/setup/jdk-7-ea-bin-b145-linux-i586-07_jun_2011.tar.gz 2.环境配置 ① $sudo vi /etc/profile ② 在末尾行添加 #set java environment JAVA_HOME=/usr/local/jdk1.7.0 CLA

linux解压tar.gz和tar.bz2

tar [-cxtzjvfpPN] 文件与目录 .... 参数: -c :建立一个压缩文件的参数指令(create 的意思): -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在! 因为不可能同时压缩与解压缩. -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩? -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩? -v :压缩的过程中显示文件!这个常用

linux中解压缩并安装.tar.gz后缀的文件

1.解压缩: Linux下以tar.gz为扩展名的软件包,是用tar程序打包并用gzip程序压缩的软件包.要安装这种软件包,需要先对软件包进行解压缩,使用“tar -zxfv filename.tar.gz”可以对软件包进行解压缩,解压缩所得的文件在以filename为名的目录中.进入该目录,可以看到解压缩出来的文件了. 2.安装: 执行解压缩命令后,通常在解压缩后产生的文件中,有“Install”的文件.该文件为纯文本文件,详细讲述了该软件包的安装方法.执行解压缩后产生的一个名为configu

.tar.gz和.zip文件的区别

在一开始下载数据集的时候遇到的疑惑 他们的不同点在于: 1 .tar.gz文件一般用于Linux系统上,而.zip文件一般流行于Windows系统上 2 .tar.gz格式的文件比.zip文件要小很多 虽然这两种格式的文件有许多不同,但他们都是压缩文件,且文件里包含的内容相同,在windows系统中WinRar等工具同样可以解压缩tar.gz格式的 原文地址:https://www.cnblogs.com/Rare2/p/9684908.html

Spring Boot项目使用maven-assembly-plugin根据不同环境打包成tar.gz或者zip

spring-boot-assembly 在spring boot项目中使用maven profiles和maven assembly插件根据不同环境打包成tar.gz或者zip 将spring boot项目中的配置文件提取到外部config目录中 将spring boot项目中的启动jar包移动到boot目录中 将spring boot项目中的第三方依赖jar包移动到外部lib目录中 bin目录中是启动,停止,重启服务命令 打包后的目录结构类似于tomcat/maven目录结构 GITHUB项