大量文件的最快压缩方法是什么?

Spi*_*ike 18 compression zip gzip tar macos

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

nik*_*nik 18

对于目录,我会使用tar管道bzip2最大压缩。

一个简单的方法是,

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

如果您不打算从存档中提取一小组文件,
并且只是计划随时随地提取整个文件,这将非常有用。
但是,如果您确实想获取一小组文件,那还不错。

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

最大压缩管道看起来像这样,

tar cf - 要归档的目录/ | bzip2 -9 -> archive.tar.bz2  
# ^pipe tarball 从这里压缩到 ^ 到存档文件中。 

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

如果您有一个快速的网络并且存档将被放置在不同的机器上,
您可以通过网络(有效地将两台机器一起使用)加快速度。

焦油 cf - 目录/ | ssh user@server "bzip2 -9 - > /target-path/archive.tar.bz2"  
# ^ 通过网络管道压缩 ^ 并在远程机器上存档。

一些参考,

  1. Linux Journal:压缩工具比较,2005 年 7 月 28 日
    • 这也指的是提到的最大压缩站点Dennis
  2. gzip 与 bzip2,2003 年 8 月 26 日
  3. 快速基准:Gzip 与 Bzip2 与 LZMA,2005 年 5 月 31 日

  • 提问者要求最快的方法,bzip 100Gb tar 需要一生!磁盘空间如此便宜,以至于除非绝对必要,否则花费大量时间来挤出每一个可能的冗余只是一种毫无意义的资源浪费。由于大部分磁盘使用量都占用了空闲空间,使用 -1 对 tar 进行 gzip 可能会很好地完成这项工作,并允许在几个月前转移到下一个任务! (3认同)

小智 9

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

是一个出色的网站,其中许多压缩实用程序已针对许多文件的速度进行了基准测试。您可以查看该站点上的许多其他测试,以确定最适合您的实用程序。

大部分速度与您使用的程序有关。我在 Windows 上使用了 7zip 的实用程序,我发现它非常快。但是,无论如何压缩许多文件都需要很长时间,所以我就让它过夜。或者你可以对整个事情进行 tar 而不压缩它......我个人讨厌解压缩大型档案,所以如果这是你想要做的,我会小心。