Domanda Come faccio a decomprimere un tarball che utilizza .xz?


Sono abituato ad estrarre i tarball con a -xfz flag, che gestisce gli archivi gzip e bzip2.

Recentemente mi sono imbattuto in a .tar.xz file e vorrei decomprimerlo in un solo passaggio usando tar, Come lo posso fare?


658
2018-01-02 23:41


origine


nota che potrebbe essere necessario installare xz-utils se non già presente - Tobias Kienzler
ecco la mia piccola sceneggiatura che indovina per te le tar: gist.github.com/shime/5908634 - shime
tar --help liste tar bandiere. -xzf si applica a gzip. -xjf a bz2. -xJf a xz. - noobninja


risposte:


Ubuntu include GNU tar, che riconosce il formato da solo! Un comando funziona con qualsiasi metodo di compressione supportato, per il manuale.

tar xf archive.tar.xz
tar xf archive.tar.gz
tar xf archive.tar

ecc. Se tar dà a Cannot exec errore, potrebbe essere necessario sudo apt install xz-utils primo.


860
2018-02-26 17:41



È una caratteristica di GNU tar. Non conosco le implementazioni in competizione, ma GNU tar dovrebbe essere il più rilevante per Ubuntu. gnu.org/software/tar/manual/tar.html#SEC131 - ramslök
se ci si imbatte in tar: xz: Cannot exec: No such file or directory, installa xz-utils: sudo apt-get install xz-utils - Collin Anderson
Questa non è una risposta, è un 'non ti interessa la risposta, anche se hai chiesto' risposta. Risparmia un pensiero per le persone che non sono "ultime" - Sean Houlihane
Quale versione di tar non richiede più la bandiera specifica? - Mark Tomlin
@ SeanHoulihane, non è una risposta perché l'OP ha chiesto a un minore Problema XY. ramslök ha dato l'OP meglio di quello che gli è stato chiesto, e ciò includeva un efficace "Non ti interessa la risposta, anche se hai chiesto", il che era appropriato perché era vero. - JonathanHayward


Provare

tar -xJf file.pkg.tar.xz

Il -J è la bandiera che si occupa specificamente di file .xz.


287
2018-01-02 23:42



Mi chiedo quante bandiere avremo nel 2020. Come ... 45 compressioni diverse? Conoscere i tar switch è già una cintura nera in Linux-fu. : / - Shiki
@Shiki: Questo è probabilmente il motivo per cui non ti fa più specificare il flag del formato di compressione. (Vedi la risposta di ramslök.) - Nate C-K
xkcd.com/1168 - Wordzilla
Questa dovrebbe essere la risposta accettata in quanto risponde alla domanda per qualsiasi versione di tar che supporta .xz - pospi
Nell'anno 2030 le bandiere diventano Turing complete ... 2040 diventano senzienti - user1359


Se per qualche motivo il tar le soluzioni non funzionano (forse perché stai usando i built-in di OS X), prova questo:

unxz < file.tar.xz > file.tar

... che è equivalente a:

xz -dc < file.tar.xz > file.tar

Quindi utilizzare tar per decomprimere il file.


68
2018-01-19 20:05



Dovrebbe essere costruibile con un tubo. - gerrit
Mi sento come se potessi semplicemente farlo unxz < file.tar.xz | tar x o simili. - thirtythreeforty
questo ha funzionato per me, dove tar xf no ubuntu 12.04 - philshem
Almeno sulla mia macchina Ubuntu, unxz non è equivalente a xz -dc, ma a xz -d. Quindi per estrarre file.tar.xz a file.tar, scriveresti semplicemente unxz file.tar.xz. Se vuoi un equivalente a xz -dc, decomprimendo su stdout, usa xzcat. Per esempio xzcat file.tar.xz | tar x. - nwellnhof


xz è un compressore senza perdita di dati. Dovrai estrarre la pallina di tar da xz e quindi estrarre il tar:

unxz my_archive.tar.xz      # results in my_archive.tar

Allora sai come estrarre un catrame

tar -xf my_archive.tar

Fonte: XZ Utils - Wikipedia.


24
2018-05-23 18:44



Migliore risposta. xz non ha bisogno di reindirizzamento stdout. Anche meglio: unxz -k - Mark Jeronimus


Ho avuto lo stesso problema, il tar xf il comando non è stato in grado di estrarlo. Per risolvere questo problema, è necessario installare il xz-utils pacchetto. La soluzione era:

sudo apt-get install xz-utils

poi:

tar xf myfile.tar.xz

12
2018-02-14 18:44





Che dire

tar -xvf package.tar.xz

-x - estrai i file

-v - Elenca in modo verosimile i file elaborati

-f - usa il file di archivio specificato


8
2018-03-05 17:16





Se tar riconosce il formato di compressione, non hai bisogno di un flag:

tar xvf *.tar.xz

Se hai bisogno di decomprimere l'input manualmente, ad esempio perché il tar è troppo vecchio per riconoscere xz, o hai bisogno di un percorso speciale:

xz -cd *.tar.xz | tar xvf -

I pipe sono più veloci di un file intermedio non compresso e usano anche meno spazio sul disco!


3
2018-02-04 06:13





Voglio solo aggiungere che se hai una vecchia versione di Tar GNU prima della versione 1.22 quando erano disponibili le opzioni --xz e -J, puoi comprimere o decomprimere i file tar.xz usando --use-compress-program xz. Per esempio,

tar --use-compress-program xz -cf example.tar.xz file1 file2 file3

o

tar --use-compress-program xz -xf example.tar.xz

3
2017-09-04 01:21