很久以前,在尝试增量备份和差异备份之前,我尝试对几个类似的大型(1 GB)目录进行 tar/gzip,但它们的压缩效果并不比单独对每个目录进行 tar 和 gzip 更好。我的猜测为什么它不起作用是这样的:
因为文件距离很远,它们将位于单独的 gzip DEFLATE 块中,因此不会被压缩在一起(我也问过多远)
这个推理正确吗?
答案1
是的,您的推理是正确的,因为 tar 不会按扩展名对文件进行排序(这可能有助于实现更高的压缩比),并且gzip
是一种非常古老的压缩算法,具有相对适中的字典,只有 32KB。
请尝试使用xz
orp7zip
代替。
这是一个压缩字符串,它可以让我在Linux下达到最高的压缩率:
7za a -mx=9 -myx=9 -mfb=273 -bt -slp -mmt4 -md=1536m -mqs archive.7z [list of files]
这需要大量内存(至少 32GB RAM)。如果删除-mmmt4
并减少字典大小为 1024m,则 16GB 就足够了。
说到对tar
.几年前我写了一个脚本来实现这一点:https://github.com/birdie-github/useful-scripts/blob/master/tar_sorted