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?

Júri A
fonte

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
Lewis Diamond
fonte
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.

Benj
fonte
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 ,

Levon
fonte
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

Franck Dernoncourt
fonte
3
bzip2 -dc my_file.tar.bz2 | tar xvf -

trabalhou para mim no cygwin

Vishal
fonte
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
-4
  1. Vá para https://cloudconvert.com .
  2. Carregue o arquivo.
  3. Converta-o em um arquivo .tar.
  4. Baixe.
  5. Extraia de lá, no seu terminal.
Sr. de Santos
fonte
7
Não é adequado para arquivos realmente grandes!
Narendranathjoshi
9
Somos superusuários. Queremos uma solução baseada em terminal.
noɥʇʎԀʎzɐɹƆ
@Sr. de Santos ... e, assim, abrir mão do controle sobre seus dados. Você não pode estar falando sério.
dirdi 16/09