Eu tenho um arquivo .tar.bz2 que quero ser descompactado e extraído por meio da ferramenta de linha de comando 7-zip.
Então, basicamente, eu estou procurando o equivalente a
tar -xjf foo.tar.bz2
com 7-zip, existe apenas a opção "x" para extrair,
7z x foo.tar.bz2
me dá o arquivo inflado foo.tar em vez de descompactar todos os diretórios dentro do tar. Qual é a opção correspondente para 7z?
Respostas:
Com o 7zip, você deve executar o comando duas vezes, uma para descompactar e novamente para extrair. O formato do arquivo tar é apenas um "maço" de tudo que está preso de ponta a ponta. Em seguida, o arquivo tar inteiro é compactado usando vários algoritmos de compactação, no exemplo bzip. Basicamente, o arquivo resultante possui duas camadas. Quando você "extrai" a camada bzip, obtém um arquivo tar, e quando extrai o arquivo tar, obtém vários arquivos individuais.
O 7zip não lida com várias camadas ao mesmo tempo, embora seja capaz de lidar com as duas camadas:
Na verdade, as ferramentas unix padrão funcionam da mesma maneira:
No entanto, o
tar
comando unix possui recursos de conveniência que chamam as etapas secundárias de compactação e descompactação usando outro programa antes / depois de lidar com a parte tar. Basicamente, o-j
argumento chamabzip2
/bunzip2
, você simplesmente não vê o segundo passo. Da mesma forma-z
chamarágzip
/gunzip
, etc.fonte
Embora não seja possível fazer isso em um comando, você pode usar um pipeline de shell para encadear dois comandos 7z em uma linha de comando, da seguinte maneira:
fonte
Que tal uma versão mais curta da combinação 7z e tar usando saídas e tubos padrão?
fonte
fonte