Como descompactar um arquivo .bz2


377

Eu tenho um arquivo como: filename.bz2eu preciso descompactar.

Eu tentei o comando:, tar xvjf filename.tar.bz2mas não funcionou, pois o arquivo não é um tararquivo.

Como descomprimir este arquivo?

Respostas:


497

Tente o seguinte:

bzip2 -d filename.bz2

Observe que este comando não preservará o arquivo original.

Para preservar o arquivo original, adicione a -kopção:

bzip2 -dk filename.bz2

4
Você também pode usar bunzip2, que usa como padrão a opção -d (descompactar).
RonaldB

2
@LewisDiamond eu corri bzip2 -d vim-8.0.tar.bz2, isso resulta vim-8.0.tar. Eu não pude entrar nisto.
Alhelal 17/11

4
@alhelal é porque é um arquivo .tar.bz2. Você descompactou o tarball, ficou com o tarbal descompactado. Extraia com tar -x vim-8.0.tar. Originalmente, você poderia ter usado tar -xjvf vim-8.0.tar.bz2.
Lewis Diamante

Uma leve correção no comentário de Lewis, tar também precisa de -f (pelo menos no Raspbian Wheezy) da seguinte formatar -xf vim-8.0.tar
JulianHarty

65

Para explicar um pouco mais, um único arquivo pode ser compactado com o seguinte bzip2:

bzip2 myfile.txt

tar é necessário apenas ao compactar vários arquivos:

tar cvjf myfile.tar.bz *.txt

Portanto, ao descompactar um .bz2arquivo bunzip, tar.bz2use-o tar xjvf.


6
Excelentes conselhos sobre o xjvf, acabaram de me salvar. Obrigado!
Edgar Aroutiounian

4
Você pode apenas usar tar xjf filename.tar.bz2. O vapenas adiciona saída detalhada. Mantenha seu terminal limpo! Eu também tive problemas em executar tar -xjf, por isso não deixe de tentar executá-lo sem o-
MrOodles 15/01

1
tar xfdeve ser suficiente com a variante BSD - a jbandeira só é utilizado quando comprimindo
Mark Fox

20

Use o comando bunzip2(ou bzip2 -d) para descompactar o arquivo. Para mais informações, consulte esta página de manual ,


O link está quebrado Levon
ankii

12

bzip2 é mono-threaded, o que significa que levará muito tempo para descompactar um arquivo grande.

Para descomprimir um .bz2arquivo multithreadedly, você pode usar o programa de código aberto gratuito lbzip2:

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

-dindica que você deseja descompactar o arquivo. Ele determinaria automaticamente quantos threads ele usará. Para especificar o número exato de threads que você deseja usar, use o -nparâmetro, por exemplo:

lbzip2 -d -n 32 my_file.bz2

Mais alguns comandos úteis com lbzip2:

Para compactar uma pasta:

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

Para descompactar uma pasta:

 tar -I lbzip2 -xvf file.tar.bz2

Parâmetros:

-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

Algumas alternativas para descomprimir um .bz2arquivo multithreadedly:

pbzip2:

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

mpibzip2: projetado para ser usado em máquinas de cluster.


Se você precisar de alguns .bz2arquivos grandes para experimentar: https://dumps.wikimedia.org/mirrors.html

Por exemplo (um .bz2arquivo de 14 GB , 200 GB descompactado):

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/ fez o benchmark:

insira a descrição da imagem aqui


Para obter mais informações sobre os parâmetros para lbzip2: http://explainshell.com/explain?cmd=lbzip2+-d+-n+32+my_file.bz2 :

insira a descrição da imagem aqui


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

trabalhou para mim no cygwin


1
Seria útil se você pudesse adicionar algumas frases à sua resposta para explicar o que ela faz.
Fixer1234 #

2
@ fixer1234 A opção '-c' copia a saída descompactada para STDOUT, que é canalizada para o utilitário tar e apresentada como nome do arquivo usando '-' para que você possa simplificá-lo como: bzip2 -d my_file.tar.bz2 ; tar xvf my_file.tar
sactiw

1
Acredito que mesmo isso funcione, bzip2 -dc my_file.tar.bz2 | tar xvou seja, não é necessário usar a opção -f e o sinal '-' correspondente depois porque o tar pode ler diretamente o STDOUT através do operador de tubo. Além disso, fique à vontade para soltar a opção -v se não desejar listar os arquivos que estão sendo processados.
sactiw

2
Isso não ajuda, pois o pôster original já mencionou que não é um tararquivo.
icedwater

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.