为什么这些命令行没有任何差异(输出文件大小)?
Gzip 标准输入
即使压缩级别不同,输出文件也具有相同的文件大小
tar ... | gzip -c -1 > ...
tar ... | gzip -c -9 > ...
xz 标准输入
即使压缩级别不同,输出文件也具有相同的文件大小
tar ... | xz -c -1 > ...
tar ... | xz -c -9 > ...
压缩包
即使压缩级别不同,输出文件也具有相同的文件大小
GZ_OPT=-1 tar -zcf ...
GZ_OPT=-9 tar -zcf ...
xz
即使压缩级别不同,输出文件也具有相同的文件大小
XZ_OPT=-1 tar -Jcf ...
XZ_OPT=-9 tar -Jcf ...
答案1
gzip 压缩级别不保证较高的压缩级别会导致较小的输出。事实上,我的man gzip
笔记中的“BUGS”部分表明,在某些情况下情况可能恰恰相反。
对于 xz(和 bzip2),这甚至有更多记录,因为根据手册,数字级别控制压缩器使用的内存量。使用更多内存应该可以实现更好的压缩,但这同样不能保证。
特别是如果您的测试数据很小,那么具有相同大小的输出对我来说并不奇怪。