我有一堆非常大的文件位于Linux我想压缩并节省一些空间。我尝试使用tar/gzip组合,我注意到压缩率不是很好。一个1.2GB
文件被压缩成一个1.1GB
文件。我尝试按照此处的建议增加压缩级别:使用 tar -zcvf 时如何指定压缩级别?
但情况仍然没有好转。我把同一个文件复制到视窗机器并在其上运行 WinRar。生成的压缩文件只有0.45GB
大小。
如此巨大的差异是为什么呢?有没有更好的 Linux 压缩工具?
更新:我甚至尝试过 lzma,但效果仍然不太好
答案1
目前 Linux 中更常见的方法是bzip2它几乎在所有的 Linux 发行版上都是默认安装的。
您可以tar
通过将命令行更改为 来切换归档器以使用 bzip2 压缩,而tar -cvjf
不是将选项中 的键tar -cvzf
替换为。z
j
这有望显著提高压缩比。
造成这种差异的原因在于它们是完全不同的压缩算法。Gzip 是一种较旧的算法,较旧的算法往往计算量较少,因此它们可以在合理的时间内完成。这是更易获得的处理能力的结果,可以使用更好、计算量更大的算法,这些算法在较旧的计算机上完成的时间与较旧的算法相似。相反,较旧的算法在较新的计算机上完成压缩的速度要快得多。
几乎任何 Windows 归档程序在 Linux 上都有对应版本。 7zip是一款出色的归档程序,在 Windows 上效果良好,并且有一个非官方的 Linux 版本。