最佳压缩方法?


53

我想压缩一个16GB的文件夹,但是最好的方法是什么?tar.gz?tar.bz2 rar?7z?如果首先压缩某个方法,然后将压缩后的压缩文件复制到新文件夹,然后再使用其他方法重新压缩,则压缩文件会更小吗?我需要使它适合DVD(输出可能为8.5GB,不记得了),但是放入“ 4370 MB”会使压缩文件成为2.5GB的一部分。

顺便说一句,Ubuntu上的默认压缩方法是什么?

Answers:


70

默认值为gz。我得到的最好的结果7z

这是一个1.4 Gb virtualbox容器的结果:

在此处输入图片说明

最佳压缩-以MB为单位的大小:

7z 493
523拉尔
第592章
lzh 607
gz 614
Z 614
拉链614
.arj 615
lzo 737
动物园890

资源

在此处输入图片说明

安装

 sudo apt-get install p7zip-full

谢谢,我已经通过软件中心安装了7z和rar。我将尝试使用7z。
阿曼达

1
这些结果从何而来?对于每种算法,压缩率和速度在很大程度上取决于您要压缩的内容。尝试压缩来自的数据/dev/urandom:每次尝试都会得到不同的结果。或尝试/dev/zero:bzip2是赢家(按比例)。
Andrea Corbellini 2013年

1
@AndreaCorbellini链接在答案中,所以请单击它!就像我说的:它基于一个1.4 virtualbox容器。我同意压缩取决于哪些文件是但是从几年经验的7z似乎是为我倾向于有(主要是软件和二进制数据文件)文件好多了
Rinzwind

1
@Rinzwind:非常抱歉,我没有看到Source链接。
Andrea Corbellini 2013年

1
@AndreaCorbellini没关系;)我们希望阿曼达能报告结果:+
Rinzwind 2013年

14

这个问题很老,但是也许有人觉得这个解决方案有用:

使用rziptar。它首先使用字典方法压缩900 MB的大数据块,然后将清理后的数据移交给bzip2。它比其他强压缩工具(快得多bzip2lzma),和一些文件中,压缩比更好bzip2lzma

是的,它gz是Linux上的默认压缩工具。它速度很快,并且尽管年代久远,但在压缩文本文件(如源代码)方面仍能提供很好的效果。另一个标准工具是bzip2,尽管速度慢得多。

另外: lrzip是更新的,并且扩展了rzip的原理。它甚至支持无限的块大小,并支持多种压缩方法(LZMA,Bzip2,Gzip,LZO,ZPAQ或无)。LZMA是标准。对于备份或如果您与其他Linux / BSD用户共享大量数据,可以非常方便。


我认为您的意思是900 kB块?900 MB会有点大...
字节码指挥官

1
实际上是900 MB。参见en.wikipedia.org/wiki/Rzip
user258532 '17

2

我选择一个LZMA。它具有最小的字节开销,并且具有很强的压缩率。ZIP和LZMA之间的比较:我已经seq.txt用PHP代码生成了两个文件

$s = '0123456789'; $str = ''; for ($i=0; $i < 1000000; $i++) $str .= $s[$i%10].($i%10==9 ? "\n":""); file_put_contents('seq.txt', $str);

它包含0..9位数〜1Mb的重复数据块和rnd.txtPHP代码

$s = '0123456789'; $str = ''; for ($i=0; $i < 1000000; $i++) $str .= $s[rand(0,9)].($i%10==9 ? "\n":""); file_put_contents('rnd.txt', $str);

其中包含0..9位数〜1Mb数据的随机块。

压缩结果:

  • seq.txt,rnd.txt-1100000字节
  • seq.txt.zip-2502字节
  • rnd.txt.zip-515957字节
  • seq.txt.lzma-257字节
  • rnd.txt.lzma-484939字节

压缩率:

  • ZIP->“ seq.txt”-> 99.772%
  • ZIP->“ rnd.txt”-> 53.094%
  • LZMA->“ seq.txt”-> 99.976%
  • LZMA->“ rnd.txt”-> 55.914%

因此,LZMA压缩顺序数据的效率比ZIP高0.2%
,随机数据的效率比ZIP高2.8%。

当然LZMA会赢!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.