extrair arquivos .bz2 arquivados dentro de um arquivo .tar com um único comando


1

Eu preciso descomprimir arquivos .bz2 dentro de um arquivo .tar (descompressão em duas etapas)

Por exemplo:

request_files_1.tar

tem vários arquivos .bz2 dentro.

Como posso extraí-los com um único comando no linux. Eu tentei isso, mas não funciona.

tar -xvf request_files_1.tar | bzip2 -d

Respostas:


1

Seu pipe não funciona porque o tar não extrai os arquivos para o stdout, apenas os lista. Portanto, o bzip2 tenta descompactar a lista de nomes de arquivos como texto sem formatação , o que obviamente não é o conteúdo de um arquivo compactado (ou seja, está usando o texto sem formatação como o conteúdo do arquivo a ser extraído).

Para usar a saída de tar xvfcomo uma lista de nomes de arquivos para bzip2extrair, você pode fazer o seguinte:

bzip2 -d $(tar xvf requested_files_1.tar)

A vopção taraqui é necessária para listar os arquivos extraídos para o bzip2.


Este é o pedaço de código perfeito e mais eficiente. Funcionou na perfeição. ficou ainda melhor quando coloquei um loop for dentro dos parênteses e o fiz executar para todos os arquivos tar desse diretório. obrigado novamente. > bzip2 -d $ (for i in * .tar; fazer tar xvf $ i; feito)
FlyingMGET

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.