如何解压缩.bz2文件


377

我有一个文件:filename.bz2我需要解压缩。

我已经尝试了命令:tar xvjf filename.tar.bz2,但是由于文件不是tar文件,因此无法正常工作。

如何解压缩该文件?

Answers:


495

请尝试以下操作:

bzip2 -d filename.bz2

请注意,此命令将不会保留原始存档文件。

要保留原始存档,请添加以下-k选项:

bzip2 -dk filename.bz2

3
您还可以使用bunzip2,它默认使用-d(解压缩)选项。
RonaldB

2
@LewisDiamond我跑了bzip2 -d vim-8.0.tar.bz2,结果vim-8.0.tar。我无法输入。
alhelal

4
@alhelal这是因为它是一个.tar.bz2文件。您解压缩了tarball,剩下了解压缩的tarbal。用提取tar -x vim-8.0.tar。本来您可以使用的tar -xjvf vim-8.0.tar.bz2
刘易斯·戴蒙德

对Lewis的评论稍作修正,tar也需要-f(至少在Raspbian Wheezy上),如下所示tar -xf vim-8.0.tar
JulianHarty

65

为了进一步说明,可以使用以下命令压缩单个文件bzip2

bzip2 myfile.txt

tar 仅在压缩多个文件时才需要:

tar cvjf myfile.tar.bz *.txt

因此,在解压缩.bz2文件use时bunzip,在解压缩tar.bz2文件use时tar xjvf


6
关于xjvf的出色建议,救了我。谢谢!
Edgar Aroutiounian 2013年

4
您可以使用tar xjf filename.tar.bz2。该v只是增加了详细的输出。保持终端清洁!我也有运行的问题tar -xjf,所以一定要尝试运行它SAN的-
MrOodles

1
tar xf对于BSD变体应该足够了–该j标志仅在压缩时使用
Mark Fox

20

使用bunzip2(或bzip2 -d)命令解压缩文件。有关更多信息,请参见此手册页


链接已断开Levon
Ankii

11

bzip2 是单线程的,这意味着解压缩大文件将花费很长时间。

.bz2多线程解压缩文件,可以使用免费的开源程序 lbzip2

sudo apt-get install lbzip2
lbzip2 -d my_file.bz2

-d表示您要解压缩文件。它将自动确定将使用多少个线程。要指定要使用的确切线程数,请使用-n参数,例如:

lbzip2 -d -n 32 my_file.bz2

其他一些有用的命令lbzip2

压缩文件夹:

tar -c -I lbzip2 -f file.tar.bz2 folder_name

要解压缩文件夹:

 tar -I lbzip2 -xvf file.tar.bz2

参数:

-I, --use-compress-program PROG
      filter through PROG (must accept -d)
-x, --extract, --get
      extract files from an archive
-v, --verbose
      verbosely list files processed
-f, --file ARCHIVE
      use archive file or device ARCHIVE

.bz2多线程解压缩文件的一些替代方法:

pbzip2

sudo apt-get install pbzip2
pbzip2 -d my_file.bz2

mpibzip2:旨在在群集计算机上使用。


如果您需要一些大.bz2文件进行试验:https : //dumps.wikimedia.org/mirrors.html

例如(14 GB .bz2文件,200 GB未压缩):

wget http://dumps.wikimedia.your.org/wikidatawiki/20170120/wikidatawiki-20170120-pages-articles-multistream.xml.bz2 
lbzip2 -d -n 32 wikidatawiki-20170120-pages-articles-multistream.xml.bz2 

http://vbtechsupport.com/1614/进行了基准测试:

在此处输入图片说明


有关以下参数的更多信息lbzip2http : //explainshell.com/explain?cmd=lbzip2+-d+-n+32+my_file.bz2

在此处输入图片说明


3
bzip2 -dc my_file.tar.bz2 | tar xvf -

在cygwin上为我工作


1
如果您可以在答案中添加一些句子以说明其作用,将很有帮助。
fixer1234

2
@ fixer1234'-c'选项将解压缩的输出复制到STDOUT,然后将其通过管道传输到tar实用程序并使用'-'表示为文件名,因此您可以将其简化为: bzip2 -d my_file.tar.bz2 ; tar xvf my_file.tar
sactiw

1
我相信即使这样也可以工作,bzip2 -dc my_file.tar.bz2 | tar xv即无需在其后使用-f选项和相应的'-'符号,因为tar可以通过管道运算符直接从STDOUT读取。另外,如果您不想列出正在处理的文件,请随时删除-v选项。
sactiw

2
这无济于事,因为原始海报已经提到它不是tar档案。
icedwater '16

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.