tar和zip有什么区别?

269

tar和zip有什么区别?它们各自的使用场景是什么?


1
请参考 SuperUser 上的这两个答案: - 哪种压缩方法更有效-tar 还是 zip?tar 和 zip 有什么区别? - 在 Linux/Unix 上,.tar.gz 和.zip 有关系吗? (顺便说一句,StackOverflow 主要用于解决编程问题。如果您以后有类似的问题,最好去 SuperUser 提问) - SomeKittens
1个回答

473

tar本身只是将文件捆绑在一起(结果称为tarball),而zip还应用了压缩。

通常使用gziptar一起压缩生成的tarball,从而实现与zip类似的结果。

对于相当大的存档,它们之间存在重要差异。 zip存档是压缩文件的集合。 压缩的tarball是一个压缩的集合(未压缩的文件)。 因此,zip存档是随机访问的连续压缩项列表,而.tar.gz是必须完全展开才能访问目录的存档。

  • zip缺点是您不能在文件之间获得压缩(因为归档中的每个文件都是独立压缩的,压缩无法利用不同文件内容的相似之处); 优点是您可以通过查看存档的特定(目标文件相关)部分来访问其中包含的任何文件(因为集合的“目录”与集合本身分开)。
  • .tar.gz缺点是必须解压整个存档才能访问其中包含的文件(因为文件在tarball中); 优点是压缩可以利用文件之间的相似之处(因为它压缩整个tarball)。

3
我有点困惑。最后一段和列表似乎互相矛盾。zip会将文件压缩成一个目录,但是缺点是你不能跨文件压缩?.tar.gz也是如此。这里是否有错别字? - Dillon Ryan Redding
4
@DillonRyanRedding 编辑过了。这解决了你的困惑吗? - Attila
1
啊哈!这样一来一切都清楚了。谢谢! - Dillon Ryan Redding
你说的tar.gz是什么意思?需要解压整个文件才能访问文件吗?我可以轻松地使用tar -f myfile.tr.gz -xzv file-that-i-want-to-extract.pdf来提取我想要的文件,它很有效。 - mariano-daniel
2
.tar.gz 文件是经过 gzip 压缩的 tar 文件,这意味着 tar 必须解压缩 .tar.gz 文件(可能在内存中)才能获取包含所需文件的未压缩的 .tar 文件。要查看,请尝试:gunzip myfile.tar.gz;您将获得包含所需文件的未压缩的 myfile.tar 文件(注意:gunzip 将删除原始的 myfile.tar.gz 文件,因此您可能需要先备份一份副本)。 - Attila
@Attila 谢谢你的澄清!所以 tar 将会解压文件,而不是你;-) 但说真的,现在我明白你的意思了,我太过于字面理解,以为你是说我需要先解压再从 tar 中提取。祝你有愉快的一天! - mariano-daniel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接