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

我已经尝试了以下命令:tar xvjf filename.tar.bz2,但是由于该文件不是tar文件,所以它不起作用。

如何解压缩此文件?

#1 楼

请尝试以下操作:

bzip2 -d filename.bz2


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

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

bzip2 -dk filename.bz2


评论


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

– RonaldB
17年1月19日在16:18

@LewisDiamond我运行了bzip2 -d vim-8.0.tar.bz2,结果为vim-8.0.tar。我无法输入。

–alhelal
17年11月17日在0:35

@alhelal那是因为它是一个.tar.bz2文件。您解压缩了tarball,剩下了解压缩的tarbal。用tar -x vim-8.0.tar提取它。最初,您可以使用tar -xjvf vim-8.0.tar.bz2。

–刘易斯·戴蒙德
17年11月17日在15:52

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

– JulianHarty
17/12/17在14:29

#2 楼

为了进一步说明,可以使用bzip2压缩单个文件,从而:

bzip2 myfile.txt

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

tar cvjf myfile.tar.bz *.txt

因此,当解压缩.bz2文件时,请使用bunzip;当解压缩tar.bz2文件时,请使用tar xjvf

评论


关于xjvf的出色建议,救了我。谢谢!

– Edgar Aroutiounian
13年8月17日在3:22

您可以只使用tar xjf filename.tar.bz2。 v仅添加详细输出。保持终端清洁!我在运行tar -xjf时也遇到了问题,因此请确保在没有-的情况下尝试运行它。

–MrOodles
2015年1月15日15:14



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

–马克·福克斯
15-10-30在0:16



#3 楼

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

评论


链接已损坏Levon

–user1038202
19年5月19日在6:31



#4 楼

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 /进行了基准测试:




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

q4 312010q

#5 楼

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


为我设计了cygwin

评论


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

–fixer1234
2015年5月21日在17:25

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

–仙人掌
16年1月7日在19:39



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

–仙人掌
16年1月7日在19:45

这没有帮助,因为原始海报已经提到它不是tar存档。

–冰水
16年1月15日,下午2:29

#6 楼


转到https://cloudconvert.com。
上传文件。
将其转换为.tar文件。
下载它。
从那里提取文件,在您的终端中。


评论


不适合大型文件!

–narendranathjoshi
16-2-3在9:04

我们是超级用户。我们需要一个基于终端的解决方案。

–noɥʇʎԀʎzɐɹƆ
16年6月7日在16:41

@先生。 de Santos ...从而放弃对数据的控制。开玩笑吧。

–dirdir
19-09-16在18:22