Answers:
7zip
比压缩机更像是压实机(如PKZIP)。它可用于Linux,但只能在常规文件中创建压缩的存档,例如,它不能压缩流。它无法存储大多数Unix文件属性,例如所有权,ACL,扩展属性,硬链接...
在Linux上,作为压缩器,您已xz
使用与7zip
(LZMA2)相同的压缩算法。您可以使用它来压缩tar存档。
像for gzip
和一样bzip2
,有一个并行变体pixz
,可以利用多个处理器来加快压缩速度(xz
也可以从5.2.0版开始使用该-T
选项进行本地压缩)。该pixz
变体还支持索引压缩tar
档案,这意味着它能够提取单个文件而不必从头开始解压缩文件。
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
对于文件夹,只需更改lrzip
为lrztar
lrzip
对于tar/cpio/pax
ed系统文件树的备份也确实非常有用,因为它们通常包含许多长距离冗余,这lrzip
真的很适合压缩。
lrzip
并pixz
使用19 GB的文本文件。两者都花了大约半小时来压缩(在六核计算机上),但是lrz
文件的大小是xz
文件的一半(2.7 vs. 4.4 GB)。因此,请对此答案再投票一次。
如果无论压缩速度如何,都希望最大程度地减小尺寸,LZMA
则可能是最佳选择。
比较各种压缩时,通常要权衡时间与大小。gzip
倾向于相对快速地压缩和解压缩,同时产生良好的压缩比。bzip2
比gzip
压缩和解压缩时间都慢一些,但压缩率更高。LZMA
具有最长的压缩时间,但产生最佳的压缩比,同时减压速度优于的减压速度bzip2
。
资料来源:http : //bashitout.com/2009/08/30/Linux-Compression-Comparison-GZIP-vs-BZIP2-vs-LZMA-vs-ZIP-vs-Compress.html
zpaq
或paq8l
。但是,它们太慢了,以至于对于大多数实际使用来说都是不切实际的。
zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tar
压缩比kgb -9
(更新的答案)如果时间不重要,请使用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)进行编译吗?看到这个提示。