哪种Linux文件压缩软件可以最大程度地减小文件大小?[关闭]


51

我做了很多文件压缩。我要压缩的大部分内容只是代码,因此我需要使用损耗较小的压缩。我想知道是否有比7zip更好的尺寸减小方法。压缩或解压缩需要多长时间都无关紧要。有人知道Linux中有这样的软件吗?还是7zip最好?

Answers:


37

7zip比压缩机更像是压实机(如PKZIP)。它可用于Linux,但只能在常规文件中创建压缩的存档,例如,它不能压缩流。它无法存储大多数Unix文件属性,例如所有权,ACL,扩展属性,硬链接...

在Linux上,作为压缩器,您已xz使用与7zip(LZMA2)相同的压缩算法。您可以使用它来压缩tar存档。

像for gzip和一样bzip2,有一个并行变体pixz,可以利用多个处理器来加快压缩速度(xz也可以从5.2.0版开始使用该-T选项进行本地压缩)。该pixz变体还支持索引压缩tar档案,这意味着它能够提取单个文件而不必从头开始解压缩文件。


6
您能否扩大在此处所进行的“压缩器”和“压缩器”之间的区别?
mattdm 2014年

2
@mattdm,压缩器仅压缩,压缩器将几件事压缩到压缩的档案中。
斯特凡Chazelas

2
@mattdm,很奇怪。在90年代,这是一个非常普遍的术语和区别,从谷歌搜索中看起来就不一样了。
斯特凡Chazelas

6
也许这是DOS的事情?在Unix中,压缩和归档之间通常是有区别的(正如您还说的那样),但是我从未听说过“压缩器”。
mattdm 2014年

1
@mattdm,好吧,compact是archive + compress(可能带有索引,可能是成员分别压缩),归档并不意味着压缩。它不是DOS的东西,但可能是法国的东西。搜寻Usenet档案,我似乎只是碰到我的文章,所以这很可能是我的发明,尽管我坚信事实并非如此。
斯特凡Chazelas

65

lrzip是您真正想要的,尤其是在压缩源代码时!

引用自述文件:

这是针对大型文件优化的压缩程序。文件越大,内存越大,则压缩优势越好,尤其是文件大于100MB时。可以选择大小(比bzip2小得多)或速度(比bzip2大很多)作为优势。[...] lrzip的独特功能是它试图始终利用系统中的可用ram来获得最大收益。

lrzip的工作原理是,首先使用基于rzip的算法扫描并删除所有长途数据冗余,然后压缩非冗余数据。

Con Kolivas 在Linux内核邮件列表中提供了一个很好的例子;其中,他压缩了40个 Linux内核的10.3GB压缩包,释放到163.9MB(1.6%),并且比xz快。他甚至没有使用最激进的第二遍算法!

我敢肯定,压缩大量的源代码压缩包将会取得不错的效果:)

sudo apt-get install lrzip

示例(对其他选项使用默认值):

超压缩,狗慢:

lrzip -z file

对于文件夹,只需更改lrziplrztar


1
我还可以争辩说,它lrzip对于tar/cpio/paxed系统文件树的备份也确实非常有用,因为它们通常包含许多长距离冗余,这lrzip真的很适合压缩。
Franki 2014年

10
我已经尝试过lrzippixz使用19 GB的文本文件。两者都花了大约半小时来压缩(在六核计算机上),但是lrz文件的大小是xz文件的一半(2.7 vs. 4.4 GB)。因此,请对此答案再投票一次。
fnl

3
@Franki的“竞赛”,您的意思是“证明”吗?
mitchus

感觉像Pied Piper!
Denys Vitali

1
您知道lrzip和rzip之间有什么区别吗?rzip看起来好像是1998年发布的,旨在在具有远距离冗余的超大文件上表现最佳,因此听起来与lrzip类似-只是想知道lrzip是否源自rzip?(rzip从rzip.samba.org
阿斯塔拉

6

如果无论压缩速度如何,都希望最大程度地减小尺寸,LZMA则可能是最佳选择。

比较各种压缩时,通常要权衡时间与大小。gzip倾向于相对快速地压缩和解压缩,同时产生良好的压缩比。bzip2gzip压缩和解压缩时间都慢一些,但压缩率更高。LZMA具有最长的压缩时间,但产生最佳的压缩比,同时减压速度优于的减压速度bzip2

资料来源:http : //bashitout.com/2009/08/30/Linux-Compression-Comparison-GZIP-vs-BZIP2-vs-LZMA-vs-ZIP-vs-Compress.html

http://tukaani.org/lzma/benchmarks.html


1
我需要不同意这一点!无论在GNU / Linux上运行的压缩速度如何,无损文件压缩器都能提供最大的压缩系数,或者为zpaqpaq8l。但是,它们太慢了,以至于对于大多数实际使用来说都是不切实际的。
Franki 2014年

@Franki冷静sudo apt-get install zpaq,我做了一些测试,根据维基,该应用程序将是2009年最新的,但它仍然是失去了克格勃(使用PAQ6),但克格勃是慢得多...
水瓶座电力

@Franki实际上,我只是发现zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tar压缩比kgb -9
Aquarius Power

4

(更新的答案)如果时间不重要,请使用ZPAQ v1.10(或更高版本),例如:
zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tar (max.cfg文件位置可能有所不同,请检查已安装的软件包文件列表)

zpaq实际压缩超过kgb -9 newFileName.kgb yourFileName.tar
这是基于较旧的算法PAQ6的,并且速度很慢...
我测试了所有其他压缩器,例如7zip,lrzip,bzip2,kgb ..和zpaq压缩最多!

如果kgb您仍然感兴趣:(因为这是我对该答案的最初选择,所以我将信息保留在此处)
Ubuntu 14.04具有kgb 1.0b4,请运行sudo apt-get install kgb以进行安装。

下面是有关Windows版本的信息,您可以尝试kgb在linux上运行/编译,但是我没有成功。
可以在SourceForge上找到版本2 beta2 ,但是没有Linux二进制文件可用。您可以尝试在控制台中使用wine kgb2_console.exe -a7 -m9(方法-a6 -m9似乎等同于1.0b4中的最佳方法,-a7在2 beta2中是新方法)运行它。尽管我可以通过安装winetricks并运行.NET 2.0来获得更好的稳定性wine "KGB Archiver 2 .net.exe"(我不喜欢这样做,所以我会坚持使用与2 beta2几乎具有相同结果的本机Linux 1.0b4)。
无论如何,版本2 beta2也非常值得拥有Linux本机版本!也许可以用MinGW完成某些工作,请参见this,但是此命令仍然严重失败:i586-mingw32msvc-g++ kgb2_console.cpp -o kgb。可以尝试使用dmcs(Mono)进行编译吗?看到这个提示


2

7zip不是唯一的技术,但是支持几种不同的压缩方法(请参阅Wikipedia 7z)。

使用专门针对C源文件的不同工具执行了一组测试。我不确定Linux是否存在哪些工具。但是,您可能会注意到,最好的算法是经过修改的PPM(PPMII,然后是PPMZ)。

如果您对这些工具感兴趣,则可以浏览该网站,该网站为俄语,但Google翻译可能会有所帮助。如果确实需要,您可以在Linux和wine一起使用(或将无法使用)大量二进制文件

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.