Questão Como descompactar um arquivo .bz2


Eu tenho um arquivo como: filename.bz2 Eu preciso descomprimir.

Eu tentei o comando: tar xvjf filename.tar.bz2, mas não funcionou como o arquivo não é um tar Arquivo.

Como faço para descomprimir este arquivo?


312


origem




Respostas:


Tente o seguinte:

bzip2 -d filename.bz2

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

Para preservar o arquivo original, adicione o -k opção:

bzip2 -dk filename.bz2

413



Você também pode usar bunzip2, cujo padrão é usar a opção -d (descompactar). - RonaldB
@LewisDiamond eu corri bzip2 -d vim-8.0.tar.bz2, isso resulta vim-8.0.tar. Eu não pude entrar nisso. - alhelal
@alhelal é porque é um arquivo .tar.bz2. Você descompactou o tarball, você ficou com o tarbal descompactado. Extraia-o com tar -x vim-8.0.tar. Originalmente você poderia ter usado tar -xjvf vim-8.0.tar.bz2. - Lewis Diamond
Uma ligeira correção ao comentário de Lewis, tar também precisa -f (pelo menos em Raspbian Wheezy) da seguinte forma tar -xf vim-8.0.tar - JulianHarty


Só para explicar um pouco mais, um único arquivo pode ser comprimido com bzip2 portanto:

bzip2 myfile.txt

tar só é necessário ao compactar vários arquivos:

tar cvjf myfile.tar.bz *.txt

Portanto, ao descompactar um .bz2 uso de arquivo bunzip, quando desaprovando um tar.bz2 uso de arquivo tar xjvf.


59



Excelente conselho sobre o xjvf, apenas me salvou. Obrigado! - Edgar Aroutiounian
Você pode simplesmente usar tar xjf filename.tar.bz2. o v apenas adiciona saída detalhada. Mantenha seu terminal limpo! Eu também tive problemas executando tar -xjf, então certifique-se de tentar executá-lo sem - - MrOodles
tar xf deve ser suficiente com a variante BSD - o j flag é usado apenas ao compactar - Mark Fox


Use o bunzip2 (ou bzip2 -d) comando para descompactar o arquivo. Para mais informações, veja este página man,


21





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

Para descomprimir um .bz2 arquivo multithreadedly, você pode usar o livre, programa de código aberto lbzip2:

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

-d indica que você deseja descompactar o arquivo. Ele determinaria automaticamente quantos encadeamentos ele usaria. Para especificar o número exato de encadeamentos que você deseja usar, use o -n parâmetro, por exemplo:

lbzip2 -d -n 32 my_file.bz2

Alguns comandos mais ú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 .bz2 arquivo 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 algum grande .bz2 arquivos para experimentar: https://dumps.wikimedia.org/mirrors.html

Por exemplo (um 14 GB .bz2 arquivo, 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:

enter image description here


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

enter image description here


6





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

trabalhou para mim no cygwin


3



Seria útil se você pudesse adicionar algumas frases à sua resposta para explicar o que ela faz. - fixer1234
A opção @ fixer1234 '-c' copia a saída descompactada para o STDOUT, que é então canalizada para o utilitário tar e apresentada como nome do arquivo usando '-', para que você possa simplificá-la como: bzip2 -d my_file.tar.bz2 ; tar xvf my_file.tar - sactiw
Eu acredito que até isso deveria funcionar bzip2 -dc my_file.tar.bz2 | tar xv ou seja, não há necessidade de usar a opção -f e o sinal '-' correspondente depois, porque o tar pode ler diretamente o do STDOUT através do operador de pipe. Além disso, sinta-se à vontade para descartar a opção -v se não quiser listar os arquivos que estão sendo processados. - sactiw
Isso não ajuda, já que o pôster original já mencionou que não é um tar arquivo. - icedwater


  1. Vamos para https://cloudconvert.com.
  2. Carregue o arquivo.
  3. Converta-o em um arquivo .tar.
  4. Baixe.
  5. Extraia de lá, no seu terminal.

-3



Não é adequado para arquivos realmente grandes! - narendranathjoshi
Nós somos superusuários. Queremos uma solução baseada em terminal. - noɥʇʎԀʎzɐɹƆ