对于大量文件来说最快的压缩方法是什么?

对于大量文件来说最快的压缩方法是什么?

我需要压缩一个目录,其中包含大约 350,000 个相当小的文件,总计约 100GB。我使用的是 OSX,目前正在使用标准“压缩”工具将此目录转换为 .zip 文件。有没有更快的方法来完成此操作?

答案1

对于目录我将使用具有最大压缩的 tar管道。bzip2

一个简单的方法是,

tar cfj archive.tar.bz2 待归档目录/ 

如果你不打算从存档中取出小文件集
,而只是计划在需要时随时提取整个文件,那么这种方法非常有用。
然而,如果你想要得到一小组文件,这还不算太糟。

我更喜欢调用此类档案filename.tar.bz2并使用“ xfj”选项进行提取。

最大压缩管道如下所示,

tar cf-dir-to-be-archived/|bzip2-9->archive.tar.bz2  
# ^pipe tarball 从这里到 zip-in^ 进入存档文件。

注意:' bzip2' 方法和更多压缩往往比常规的gzip' tar cfz' 更慢。

如果您拥有快速的网络并且要将档案放在不同的机器上,
则可以使用跨网络的管道来加快速度(有效地一起使用两台机器)。

tar cf - dir/| ssh 用户@服务器“bzip2 -9 - > /target-path/archive.tar.bz2”  
# ^ 通过网络将 tarball 传输到 zip ^ 并存档在远程机器上。

一些参考资料,

  1. Linux 杂志:压缩工具比较,2005年7月28日
  2. gzip 与 bzip2,2003 年 8 月 26 日
  3. 快速基准测试:Gzip、Bzip2 和 LZMA,2005 年 5 月 31 日

答案2

家伙对此进行了一些研究。看来 .zip 可以更快地压缩较大的文件。但是,它产生的压缩大小是最大的之一。看起来他也在使用 Windows 实用程序,但我敢打赌 OSX 的实用程序几乎同样优化。

这里是一个很棒的网站,许多压缩实用程序都经过基准测试,以评估其处理多种文件的速度。该网站上还有许多其他测试,您可以查看以确定最适合您的实用程序。

速度在很大程度上取决于您使用的程序。我使用过 7zip 的 Windows 实用程序,我发现它非常快。但是,无论如何压缩许多文件都需要很长时间,所以我会让它过夜。或者你可以直接将整个文件打包成 tar 而不是压缩它...我个人讨厌解压大型档案,所以如果你想这样做,我会小心谨慎。

相关内容