Decomprimi il file compresso in .txz e .tar con un solo comando


13

Ho un file compresso in * .txz. Dopo averlo decompresso ho ricevuto un file * .tar. C'è un modo per decomprimerlo due volte con un comando? Voglio dire decomprimere il file (* .tar) .txz con un comando?

Per sapere che lo faccio in questo modo:

xz -d file.txz
tar xvf file.tar

Ma mi chiedo se esiste un modo migliore.

Risposte:


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

È lo stesso di qualsiasi archivio compresso. Non dovresti mai creare una copia non compressa del file originale.

Alcune tarimplementazioni come le recenti versioni di GNU tarhanno opzioni integrate da chiamare xzda sole.

Con GNU taro bsdtar:

tar Jxvf file.tar.xz

Tuttavia, se hai una versione che ha -J, è probabile che rilevi xzautomaticamente i file, quindi:

tar xvf file.tar.xz

sarà sufficiente.

Se il tuo GNU o BSD tarè troppo vecchio per supportare in modo xzspecifico, potresti essere in grado di usare l' --use-compress-programopzione:

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

Uno dei vantaggi di aver tarinvocato l'utilità del compressore è che è in grado di segnalare l'errore nel suo stato di uscita.

Nota: se l' tar.xzarchivio è stato creato con pixz, pixzpotrebbe essere stato aggiunto un tarindice, che consente di estrarre i file singolarmente senza dover decomprimere l'intero archivio:

pixz -x path/to/file/in/archive < file.tar.xz | tar xvf -

Devo usare questo: tar --use-compress-program = xz -xvf file.tar.gz Grazie!
Paweł Jaworowski,


4

Il disimballaggio non è probabilmente la terminologia corretta. È possibile decomprimere con xze decomprimere con tar.

La pagina di manuale per GNU tar( man tar, GNU tar è di default su Debian) specifica che puoi usare:

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

e xzsupporta l' -dopzione, quindi puoi usare:

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

Ciò che è molto meno chiaro dalla pagina man è quello -xze -Jsono le scorciatoie per --use-compress-program xzo -I xz.

E ciò che non è affatto specificato nella pagina man è che puoi semplicemente fare

tar xvf file.txz 

in GNU tar e che riconoscerà il file tar come compresso xz.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.