tar mostra erro “não é um arquivo bzip2” ao descompactar um arquivo .tar.bz

2

Eu tenho um arquivo data_or.tar.bz

Eu tentei extrai-lo com

$ tar xjvf data_or.tar.bz

A saída é

bzip2: (stdin) is not a bzip2 file.
tar: Child returned status 2
tar: Error is not recoverable: exiting now

Somente bz2 arquivos podem ser extraídos com o comando tar ?

- atualizar

$ file data_or.tar.bz 
data_or.tar.bz: POSIX tar archive (GNU)
    
por Mithun Sreedharan 29.11.2011 / 11:09

1 resposta

6

Seu tarball não está compactado. A extensão .bz é obsoleta e enganosa.

Você pode descomprimir usando o seguinte comando:

tar xvf data_or.tar.bz

O que provavelmente aconteceu aqui é que data_or.tar.bz foi criado com a opção --auto-compress (ou tar -cavf ) que escolhe o algoritmo de compactação da extensão fornecida.

A extensão adequada para arquivos compactados bzip2 é .bz2 , enquanto a extensão .bz é para arquivos compactados bzip .

bzip usa codificação aritmética (que é um algoritmo patenteado), então bzip2 foi criado em 1997 como uma alternativa livre de patentes. Como resultado, bzip2 e bzip são incompatíveis.

tar não pode manipular a compactação bzip (de), portanto, a opção --auto-compress resultou em um tarball descompactado.

    
por 29.11.2011 / 11:54