Vraag Hoe decomprimeer ik een tarball die .xz gebruikt?


Ik ben eraan gewend om tarballs te extraheren met een -xfz vlag, die gzip- en bzip2-archieven verwerkt.

Onlangs ben ik een a tegengekomen .tar.xz bestand en ik wil het in één stap decomprimeren met tar, hoe kan ik dat doen?


658
2018-01-02 23:41


oorsprong


merk op dat je misschien moet installeren xz-utils indien niet al aanwezig - Tobias Kienzler
hier is mijn kleine script dat tar-vlaggen voor u raadt: gist.github.com/shime/5908634 - shime
tar --help lijsten tar vlaggen. -xzf geldt voor gzip. -xjf naar bz2. -xJf naar xz. - noobninja


antwoorden:


Ubuntu bevat GNU tar, dat het formaat alleen herkent! Eén opdracht werkt met elke ondersteunde compressiemethode, per de handleiding.

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

enz. Als teer geeft een Cannot exec fout, mogelijk moet u dit doen sudo apt install xz-utils eerste.


860
2018-02-26 17:41



Het is een functie van GNU tar. Ik ben niet op de hoogte van concurrerende implementaties, maar GNU-tar moet het meest relevant zijn voor ubuntu. gnu.org/software/tar/manual/tar.html#SEC131 - ramslök
als je tegenkomt tar: xz: Cannot exec: No such file or directory, installeer xz-utils: sudo apt-get install xz-utils - Collin Anderson
Dit is geen antwoord, het is een 'je geeft niet om het antwoord, ook al vroeg je' antwoord. Spaar een gedachte voor mensen die niet op 'laatste' zijn - Sean Houlihane
Welke versie van tar niet langer de specifieke vlag nodig heeft? - Mark Tomlin
@SeanHoulihane, het is geen antwoord omdat het OP een minderjarige heeft gevraagd XY-probleem. ramslök gaf het OP beter dan werd gevraagd, en dat omvatte een effectief "Je geeft niet om het antwoord, ook al vroeg je het", wat gepast was omdat het waar was. - JonathanHayward


Proberen

tar -xJf file.pkg.tar.xz

De -J is de vlag die specifiek betrekking heeft op .xz-bestanden.


287
2018-01-02 23:42



Ik vraag me af hoeveel vlaggen we zullen hebben in 2020. Zoals ... 45 verschillende compressies? Het kennen van teerschakelaars is al een black-belt in Linux-fu. : / - Shiki
@Shiki: Dat is waarschijnlijk de reden waarom je niet meer de vlag van het compressieformaat opgeeft. (Zie het antwoord van ramslök.) - Nate C-K
xkcd.com/1168 - Wordzilla
Dit zou volledig het geaccepteerde antwoord moeten zijn, omdat het de vraag beantwoordt voor elke versie van tar-ondersteuning .xz - pospi
In het jaar 2030 worden vlaggen volledig uit Turing ... 2040 worden ze sentient - user1359


Als om welke reden dan ook tar oplossingen werken niet (misschien omdat je de OS X-ingebouwd hebt), probeer dit:

unxz < file.tar.xz > file.tar

... wat gelijk is aan:

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

Gebruik dan tar om het bestand leeg te maken.


68
2018-01-19 20:05



Dat zou met een pijp te maken moeten zijn. - gerrit
Ik heb het gevoel dat je het gewoon zou kunnen doen unxz < file.tar.xz | tar x of vergelijkbaar. - thirtythreeforty
dit werkte voor mij, waar tar xf deed niet. ubuntu 12.04 - philshem
Tenminste op mijn Ubuntu-machine, unxz is niet gelijk aan xz -dc, maar naar xz -d. Dus uitpakken file.tar.xz naar file.tar, je zou gewoon schrijven unxz file.tar.xz. Als je een equivalent wilt xz -dc, decomprimeren naar stdout, gebruik xzcat. Bijvoorbeeld xzcat file.tar.xz | tar x. - nwellnhof


xz is een gegevenscompressor zonder gegevensverlies. Je moet de teerbal extraheren uit xz en dan de teer extraheren:

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

Dan weet je dat je een teer moet extraheren

tar -xf my_archive.tar

Bron: XZ Utils - Wikipedia.


24
2018-05-23 18:44



Beste antwoord. xz heeft geen stdout-omleiding nodig. Nog beter: unxz -k - Mark Jeronimus


Ik had hetzelfde probleem, de tar xf commando was niet in staat om het uit te pakken. Om dit op te lossen, moet u de xz-utils pakket. De oplossing was:

sudo apt-get install xz-utils

dan:

tar xf myfile.tar.xz

12
2018-02-14 18:44





Hoe zit het met

tar -xvf package.tar.xz

-x - bestanden uitpakken

-v - Maak een lijst met bewerkte bestanden

-f - gebruik het gespecificeerde archiefbestand


8
2018-03-05 17:16





Als tar het compressieformaat herkent, hebt u geen vlag nodig:

tar xvf *.tar.xz

Als je de invoer handmatig moet decomprimeren, bijvoorbeeld omdat je tar te oud is om xz te herkennen, of als je een speciaal pad nodig hebt:

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

Pipes zijn sneller dan het maken van een niet-gecomprimeerd intermediair bestand en gebruiken ook minder schijfruimte!


3
2018-02-04 06:13





Wilt u gewoon toevoegen dat als u een oude versie heeft van GNU tar vóór versie 1.22 toen de --xz en -J opties beschikbaar kwamen, kon je tar.xz bestanden comprimeren of decomprimeren door gebruik te maken van --use-compress-program xz. Bijvoorbeeld,

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

of

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

3
2017-09-04 01:21