Descompacte o arquivo compactado em .txz e .tar com um comando

13

Eu tenho um arquivo compactado em * .txz. Depois de desempacotá-lo, recebi um arquivo * .tar. Existe alguma maneira de descompactá-lo duas vezes com um comando? Quero dizer descompactar arquivo (* .tar) .txz com um comando?

Para saber, eu faço assim:

xz -d file.txz
tar xvf file.tar

Mas eu me pergunto se existe uma maneira melhor.

Paweł Jaworowski
fonte

Respostas:

18
xz -d < file.tar.xz | tar xvf -

É o mesmo que em qualquer arquivo compactado. Você nunca precisará criar uma cópia não compactada do arquivo original.

Algumas tarimplementações, como as versões recentes do GNU, tartêm opções integradas para chamar xzpor si mesmas.

Com GNU tarou bsdtar:

tar Jxvf file.tar.xz

No entanto, se você possui uma versão que possui -J, é provável que ela detecte xzarquivos automaticamente, portanto:

tar xvf file.tar.xz

será suficiente.

Se o seu GNU ou BSD tarfor muito antigo para suportar xzespecificamente, você poderá usar a --use-compress-programopção:

tar --use-compress-program=xz -xvf file.tar.gz

Uma das vantagens de tarchamar o utilitário do compressor é que ele pode relatar a falha do mesmo em seu status de saída.

Nota: se o tar.xzarquivo morto foi criado pixz, pixzpode ter adicionado um taríndice a ele, o que permite extrair arquivos individualmente sem precisar descompactar todo o arquivo morto:

pixz -x path/to/file/in/archive < file.tar.xz | tar xvf -
Stéphane Chazelas
fonte
Eu tenho que usar este: tar --use-compress-program = xz -xvf file.tar.gz Obrigado!
Paweł Jaworowski
6

Este deve ser o caminho a percorrer tar Jxvf file.txz

UVV
fonte
Sim, para os modernos tar, você pode usar -Jou--xz .
Cornstalks
4

Desembalar provavelmente não é a terminologia correta. Você pode descompactar com xze untar com tar.

A página de manual do GNU tar( man tarGNU tar é o padrão no Debian) especifica que você pode usar:

-I, --use-compress-program PROG
      filter through PROG (must accept -d)

e xzsuporta a -dopção, para que você possa usar:

tar --use-compress-program xz xvf file.txz 

O que é muito menos claro na página de manual é isso -xze -Jsão atalhos para --use-compress-program xzor -I xz.

E o que não está especificado na página de manual é que você pode simplesmente fazer

tar xvf file.txz 

no GNU tar e que ele reconhecerá o arquivo tar como sendo compactado xz.

Anthon
fonte