我有一个相当大的文件(约 50GB),运行需要一些时间
tar xvf file.tar.bz2
我知道有些程序可以对 bzip2 文件进行并行压缩,但不知道有些程序可以对 bzip2 文件进行并行解压缩。
有什么程序可以实现这一点?从文件中提取的命令的具体语法是什么?
我正在使用 ubuntu 12.04
答案1
答案2
您可以使用以下方式解压缩档案:单一命令使用 tar-I
选项。它使您能够使用支持该-d
选项的任何压缩实用程序。
tar -I lbzip2 -xvf <file.tar.bz2>
它在处理大型档案时非常有用,因为你不需要在目标文件系统上提供两倍的未压缩大小(tar 临时文件和输出文件)由于您需要的磁盘 IO 更少,因此它也更快。
当然,压缩时这也有效:
tar -I lbzip2 -cvpf <file.tar.bz2> <file>
检查tar --help
更多选项。
答案3
您可以使用 pbzip2 并加上-d
“解压缩”的标志,
来自手册页:
pbzip2 -d myfile.tar.bz2
此示例将文件“myfile.tar.bz2”解压为解压文件“myfile.tar”。它将使用自动检测的处理器数量(如果不支持自动检测,则使用 2 个处理器)。
解压缩后,你需要使用
tar xf myfile.tar
tar 文件只是一个容器,您可以对其应用多种压缩算法,例如,您可以使用“.tar.gz”或“.tar.bz2”,它们都应用了不同的压缩算法。因此,pbzip2 只会解压档案,但不会提取文件,而是用于tar
提取文件。tar 不会花很长时间,因为档案已经解压,它只会提取文件。(请注意,我们没有在 tar 命令中使用“z”标志或“j”标志,它们表示我们还要解压文件)
答案4
就您的情况而言,lbzip2 似乎比 pbzip2 好很多,因为它能够加快标准 .bz2 文件的解压速度,而 pbzip2 却不能。(刚刚测试过 - 在部分加载的四核处理器上,lbzip2 需要 17 秒,而 pbzip2 需要 56 秒)。