howto inflar E extrair um .tar.bz2 usando a ferramenta de linha de comando 7-zip

8

Eu tenho um arquivo .tar.bz2 que eu quero descompactar e extrair através da ferramenta de linha de comando 7-zip.

Então, basicamente, estou procurando o equivalente a

tar -xjf foo.tar.bz2

com 7-zip existe apenas a opção "x" para extração, fazendo assim

7z x foo.tar.bz2

me fornece o arquivo foo.tar inflado ao invés de descompactar todos os diretórios dentro do tar. Qual é a opção correspondente para o 7z?

    
por Philipp 28.05.2011 / 19:05

4 respostas

4

Com o 7zip, você precisa executar o comando duas vezes, uma para descompactar e novamente para extrair. O formato de arquivo tar é apenas um "maço" de tudo preso de ponta a ponta. Em seguida, o arquivo tar inteiro é compactado usando vários algoritmos de compactação, no seu exemplo de bzip. Basicamente, o arquivo resultante tem duas camadas. Quando você "extrai" a camada bzip, você obtém um arquivo tar e, ao extrair o arquivo tar, você obtém vários arquivos individuais.

O 7zip não manipula múltiplas camadas de uma só vez, embora seja capaz de lidar com ambas as camadas:

7z x foo.tar.bz2
7z x foo.tar

Na verdade, as ferramentas unix padrão funcionam da mesma maneira:

bunzip2 foo.tar.bz2
tar xf foo.tar

No entanto, o comando unix tar possui recursos de conveniência que chamam as etapas de compactação e descompactação secundárias usando outro programa antes / depois de manipular a parte tar. Basicamente, o argumento -j chama bzip2 / bunzip2 , você simplesmente não vê o segundo passo. Da mesma forma -z chamará gzip / gunzip , etc.

    
por 28.05.2011 / 20:06
3

Que tal uma versão mais curta da combinação 7z e tar usando canais padrão e saída?

# 7z x -so my-compressed-tarball.tar.bz2| tar xf -
    
por 28.05.2011 / 20:39
3

Embora não seja possível fazer isso em um comando, você pode fazer uso de um canal de conchas para encadear dois comandos 7z em uma linha de comando da seguinte forma:

7z e -so .\Downloads\enron_mongo.tar.bz2 | 7z e -si -ttar
    
por 24.04.2012 / 04:05
1
7z x -so foo.tar.bz2 | 7z x -si -ttar
    
por 15.05.2013 / 16:34

Tags