任何Linux命令来执行tar.bz2文件的并行解压缩?


17

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

tar xvf file.tar.bz2

在上面。我知道可以对bzip2文件进行并行压缩的程序,但是不知道可以对bzip2文件进行并行解压缩的程序。

是否有任何程序可以实现这一目标?从文件中提取命令的确切语法是什么?

我正在使用Ubuntu 12.04

Answers:


22

lbzip2并且pbzip2都是你可以使用并行压缩和解压缩的工具。

用法:

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

-d 选项用于减压。

要安装这些软件包:

lbzip2 安装lbzip2类型:

sudo apt-get install lbzip2

pbzip2 安装pbzip2类型:

sudo apt-get install pbzip2

因此,如果我理解正确,我需要解压缩然后解压缩?喜欢2条命令而不是tar xvf
user784637

1
是的,当您运行lbzip2 -d -n 2 file.tar.bz2它会给出一个tar文件。哪些需要脱脂。
devav2 2012年

1
在pbzip2的手册页中(lbzip2讲了类似的故事):“使用pbzip2压缩的文件在使用pbzip2进行解压缩时也将获得相当大的加速。使用bzip2压缩的文件将不会看到加速,因为bzip2将数据打包为一个块无法在处理器之间分配。”
Tapio 2012年

1
@Tapio这是lbzip2“通过从多个线程调用Julian Seward的libbz2来将FILE操作数或标准输入压缩或解压缩到常规文件或标准输出的描述。lbzip2实用程序使用多个线程和一个输入绑定拆分器,即使在解压缩.bz2文件时也是如此。由标准bzip2创建(但请参见下面的错误)。”
devav2 2012年

1
仅从答案来看,我将理解这两个程序需要以某种方式一起使用-但实际上它们似乎是替代的吗?(它说“ lbzip2和pbzip2是工具...”,“用法:lbzip2 ... pbzip2 ...”,“要安装这些...”)
Volker Siegel

11

您可以使用tar 选项通过单个命令解压缩存档-I。它使您能够使用任何支持该-d选项的压缩实用程序。

tar -I lbzip2 -xvf <file.tar.bz2>

在处理大型归档文件时,它非常有用,因为您不需要目标文件系统(tar临时文件和输出文件)上可用的未压缩大小增加一倍。由于所需的磁盘IO少得多,因此速度也更快。

当然也可以在压缩时起作用:

tar -I lbzip2 -cvpf <file.tar.bz2> <file>

检查tar --help更多选项。


1
另一个选择(例如,如果您的“ tar”版本不理解-I选项)是lbzip2 -dc file.tar.bz2 | tar xvf -
Wodin 2014年

5

您可以将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'标志,这表明我们也希望解压缩文件)


1
手册页上有一些有用的示例:manpages.ubuntu.com/pbzip2
Savvas Radevic 2012年

@Sam感谢您的回答-您能否回答我在其他回答上留下的评论
user784637

2

在您的情况下,lbzip2似乎比pbzip2更好,因为它能够加快标准.bz2文件的解压缩,而pbzip2却不这样做。(刚刚测试过-在部分加载的四核上,lbzip2为17秒,而pbzip2为56秒)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.