如何解压缩 .bz2 文件

Jur*_*y A 460 linux compression bzip2

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

我试过命令:tar xvjf filename.tar.bz2,但它不起作用,因为该文件不是tar文件。

如何解压这个文件?

Lew*_*ond 608

请尝试以下操作:

bzip2 -d filename.bz2
Run Code Online (Sandbox Code Playgroud)

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

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

bzip2 -dk filename.bz2
Run Code Online (Sandbox Code Playgroud)

  • 您还可以使用 bunzip2,它默认使用 -d(解压缩)选项。 (10认同)
  • @alhelal 那是因为它是一个 .tar.bz2 文件。您解压缩了 tarball,剩下的是解压缩的 tarbal。用`tar -x vim-8.0.tar` 解压。最初你可以使用 `tar -xjvf vim-8.0.tar.bz2`。 (7认同)
  • @LewisDiamond 我运行了`bzip2 -d vim-8.0.tar.bz2`,结果是`vim-8.0.tar`。我无法进入这个。 (3认同)

Ben*_*enj 70

进一步解释一下,可以这样压缩单个文件bzip2

bzip2 myfile.txt

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

tar cvjf myfile.tar.bz *.txt

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

  • 关于 xjvf 的好建议,救了我。谢谢! (6认同)
  • 你可以只使用`tar xjf filename.tar.bz2`。`v` 只是添加了详细的输出。保持终端清洁!我在运行 `tar -xjf` 时也遇到了问题,所以一定要尝试在没有 `-` 的情况下运行它 (5认同)

Lev*_*von 21

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


Fra*_*urt 16

bzip2 是单线程的,这意味着解压缩一个大文件需要很长时间。

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

sudo apt-get install lbzip2
lbzip2 -d my_file.bz2
Run Code Online (Sandbox Code Playgroud)

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

lbzip2 -d -n 32 my_file.bz2
Run Code Online (Sandbox Code Playgroud)

一些更有用的命令lbzip2

要压缩文件夹:

tar -c -I lbzip2 -f file.tar.bz2 folder_name
Run Code Online (Sandbox Code Playgroud)

要解压缩文件夹:

 tar -I lbzip2 -xvf file.tar.bz2
Run Code Online (Sandbox Code Playgroud)

参数:

-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
Run Code Online (Sandbox Code Playgroud)

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

pbzip2

sudo apt-get install pbzip2
pbzip2 -d my_file.bz2
Run Code Online (Sandbox Code Playgroud)

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 
Run Code Online (Sandbox Code Playgroud)

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

在此处输入图片说明


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

在此处输入图片说明


小智 5

bzip2 -dc my_file.tar.bz2 | tar xvf -
Run Code Online (Sandbox Code Playgroud)

在 cygwin 上为我工作

  • 这没有帮助,因为原始海报已经提到它不是“tar”存档。 (3认同)
  • @fixer1234 '-c' 选项将解压缩的输出复制到 STDOUT,然后通过管道传输到 tar 实用程序并使用 '-' 显示为文件名,因此您可以将其简化为: `bzip2 -d my_file.tar.bz2 ; tar xvf my_file.tar` (2认同)