Descomprima el archivo comprimido en .txz y .tar con un comando

13

Tengo un archivo comprimido en * .txz. Después de desempacarlo, recibí un archivo * .tar. ¿Hay alguna forma de descomprimirlo dos veces con un comando? Me refiero a descomprimir el archivo (* .tar) .txz con un comando?

Por ahora lo hago así:

xz -d file.txz
tar xvf file.tar

Pero me pregunto si hay una mejor manera.

Paweł Jaworowski
fuente

Respuestas:

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

Eso es lo mismo que con cualquier archivo comprimido. Usted debe nunca se tenga que crear una copia comprimida del archivo original.

Algunas tarimplementaciones como las versiones recientes de GNU tartienen opciones integradas para llamar xzpor sí mismas.

Con GNU taro bsdtar:

tar Jxvf file.tar.xz

Sin embargo, si tiene una versión que tiene -J, es probable que detecte xzarchivos automáticamente, así que:

tar xvf file.tar.xz

Será suficiente.

Si su GNU o BSD tares demasiado viejo para soportarlo xzespecíficamente, puede usar la --use-compress-programopción:

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

Una de las ventajas de tarinvocar la utilidad del compresor es que puede informar la falla en su estado de salida.

Nota: si el tar.xzarchivo se ha creado con pixz, pixzpuede haber agregado un taríndice, que permite extraer archivos individualmente sin tener que descomprimir todo el archivo:

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

Este debería ser el camino a seguir tar Jxvf file.txz

UVV
fuente
Sí, para moderno tar, puedes usar -Jo--xz .
Cornstalks
4

Desempacar probablemente no sea la terminología correcta. Puede descomprimir con xzy untar con tar.

La página del manual para GNU tar( man tar, GNU tar es el valor predeterminado en Debian) especifica que puede usar:

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

y xzadmite la -dopción, por lo que puede usar:

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

Lo que está mucho menos claro en la página de manual es que -xzy -Json abreviaturas para --use-compress-program xzo -I xz.

Y lo que no se especifica en absoluto en la página del manual es que simplemente puede hacer

tar xvf file.txz 

en GNU tar y reconocerá que el archivo tar está comprimido con xz.

Anthon
fuente