tar 和 zip 压缩哪个更有效率?tar 和 zip 有什么区别?

tar 和 zip 压缩哪个更有效率?tar 和 zip 有什么区别?

我在 Linux 环境中工作,想了解 tar 和 zip 命令。

tar 和 zip 哪个更有效?我还需要知道 tar 和 zip 命令之间的区别。有人能给我解释一下吗?

答案1

targzip只能将多个文件组合成一个文件,它不会进行压缩,除非组合使用诸如或之类的压缩程序bzip2(您可以分别tar使用-z-j选项从内部调用它们)。zip将归档和压缩结合在一个程序中。

答案2

柏油

  • 假设您将从一端读取​​到另一端 - “磁带档案”。 (命令的年龄显示...)
  • 不进行压缩,但您可以通过管道(例如 gzip 和 bzip2)压缩整个结果流(使用 -z 或 -j 在内部完成)
  • 存储 unix 文件属性:uid、gid、权限(最值得注意的是可执行权限)。默认值可能取决于您的发行版,并且可以通过选项进行切换。

压缩

  • 存储 MSDOS 属性.(存档、只读、隐藏、系统)
  • 压缩每个文件,然后将它们添加到档案中
  • 在文件末尾包含一个文件表
  • 并且由于前两者的作用,可以只读取您需要的文件的精确部分。

事实上,zip 分别压缩文件会影响压缩率,尤其是对于许多类似的小文件。

(至少十年前这是完全正确的。)

答案3

Tar 比 Zip 保留了更多的元数据,请参阅我的比较(略微过时):

在此处输入图片描述

(点击放大)

Tar 通过了 65% 的测试,而 Zip 仅通过了 17%。我制作了测试套件根据 BSD 许可,可在 github 上使用如果你有 Mac,你可以自己尝试一下。对于 Linux,我不确定是否有任何元数据,因此这些测试可能不相关。

答案4

正如 Wim 所说,tar 本身不会压缩。如果您确实添加了压缩 tar(例如,获取 .tar.gz 或 .tar.bz2),那么您将一次性压缩整个 tar 文件。相比之下,zip 会单独压缩每个文件。

效率取决于工作量。具体来说,zip 允许您直接访问单个文件。使用 tar 时,您必须先查找不需要的(压缩的)文件。压缩性能取决于您要压缩的内容。 对于大量相似的文件(例如源目录), tar使用通常更好。如果每个文件的内容非常不同,则可能会更好。bzip2zip

相关内容