有任何 Linux 命令可以执行 tar.bz2 文件的并行解压缩吗?

有任何 Linux 命令可以执行 tar.bz2 文件的并行解压缩吗?

我有一个相当大的文件(约 50GB),运行需要一些时间

tar xvf file.tar.bz2

我知道有些程序可以对 bzip2 文件进行并行压缩,但不知道有些程序可以对 bzip2 文件进行并行解压缩。

有什么程序可以实现这一点?从文件中提取的命令的具体语法是什么?

我正在使用 ubuntu 12.04

答案1

lbzip2压缩包是可用于并行压缩和解压缩的工具。

用法:

lbzip2 -d <file.tar.bz2> 
pbzip2 -d <file.tar.bz2> 

-d选项用于解压缩。

要安装这些包,请运行以下命令之一或两个:

sudo apt install lbzip2sudo apt install pbzip2

答案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 秒)。

相关内容