繁体   English   中英

.tar.gz和第一个gz然后tar的区别

[英]Difference in .tar.gz and first gz and then tar

我制作了两个我的文件夹的压缩副本,首先使用命令tar czf dir.tar.gz dir这给了我一个大小约为16kb的存档。 然后我尝试了另一种方法,首先我将dir中的所有文件枪杀然后使用

gzip ./dir/*
tar cf dir.tar dir/*.gz

但第二种方法给了我dir.tar的大小〜30kb(几乎是两倍)。 为什么这么大的差异呢?

因为zip过程通常在大样本上比在小文件上更有效。 例如,您已经压缩了100个1ko文件。 每个文件都有一定的压缩,加上gzip格式开销

file1.tar -> files1.tar.gz  (admit 30 bytes of headers/footers)
file2.tar -> files2.tar.gz  (admit 30 bytes of headers/footers)
...
file100.tar -> files100.tar.gz  (admit 30 bytes of headers/footers)
------------------------------
30*100 = 3ko of overhead.

但是如果你尝试压缩100ko的tar文件(包含你的100个文件),gzip格式的开销只会增加一次(而不是100次),压缩会更好)

单个处理文件时gzip的每个文件元数据和次优压缩的开销,因为gzip没有完整地观察数据,因此使用次优字典压缩(在每个文件之后重置)。

tar cf应该创建一个未压缩的存档,这意味着您的目录的大小应该与您的存档几乎相同,甚至可能更多。

tar czf将通过它运行gunzip压缩。

这可以通过在Linux中的shell提示符中执行man tar来进一步检查,

   -z, --gzip, --gunzip, --ungzip
          filter the archive through gzip

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM