因为 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 只用管压缩,不用管打包。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/127000.html