Question Comment décompresser une archive utilisant .xz?


Je suis habitué à extraire des archives avec un -xfz flag, qui gère les archives gzip et bzip2.

Récemment, j'ai rencontré un .tar.xz fichier et je voudrais le décompresser en une seule étape en utilisant tar, Comment puis je faire ça?


658
2018-01-02 23:41


origine


notez que vous devrez peut-être installer xz-utils si pas déjà présent - Tobias Kienzler
voici mon petit script qui devine des drapeaux pour vous: gist.github.com/shime/5908634 - shime
tar --help des listes tar drapeaux -xzf s'applique à gzip. -xjf à bz2. -xJf à xz. - noobninja


Réponses:


Ubuntu inclut GNU tar, qui reconnaît le format par lui-même! Une commande fonctionne avec toute méthode de compression prise en charge, par Le manuel.

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

etc. Si le goudron donne une Cannot exec erreur, vous devrez peut-être sudo apt install xz-utils premier.


860
2018-02-26 17:41



C'est une caractéristique de GNU tar. Je ne connais pas les implémentations concurrentes, mais GNU tar devrait être le plus pertinent pour Ubuntu. gnu.org/software/tar/manual/tar.html#SEC131 - ramslök
si vous rencontrez tar: xz: Cannot exec: No such file or directoryinstaller xz-utils: sudo apt-get install xz-utils - Collin Anderson
Ce n'est pas une réponse, c'est une «vous ne vous souciez pas de la réponse, même si vous avez répondu». Épargnez une pensée pour les gens qui ne sont pas sur le «dernier» - Sean Houlihane
Quelle version de tar ne nécessite plus le drapeau spécifique? - Mark Tomlin
@SeanHoulihane, ce n'est pas une réponse car l'OP a demandé à un mineur Problème XY. ramslök a donné au programme opérationnel mieux que ce qui avait été demandé, et cela incluait une réponse efficace, "même si vous avez demandé", ce qui était approprié car c'était vrai. - JonathanHayward


Essayer

tar -xJf file.pkg.tar.xz

le -J est l'indicateur qui traite spécifiquement des fichiers .xz.


287
2018-01-02 23:42



Je me demande combien de drapeaux aurons-nous en 2020. Comme ... 45 compressions différentes? Connaître les commutateurs de goudron est déjà une ceinture noire chez Linux-fu. : / - Shiki
@Shiki: C'est probablement pour cela que vous ne spécifiez plus l'indicateur de format de compression. (Voir la réponse de Ramslök.) - Nate C-K
xkcd.com/1168 - Wordzilla
Cela devrait totalement être la réponse acceptée car elle répond à la question pour toute version de tar supportant .xz - pospi
En 2030, les drapeaux deviennent Turing complets ... 2040 ils deviennent sensibles - user1359


Si pour une raison quelconque tar les solutions ne fonctionnent pas (peut-être parce que vous utilisez les fonctions intégrées d’OS X), essayez ceci:

unxz < file.tar.xz > file.tar

… Ce qui équivaut à:

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

Puis utilisez tar pour désarchiver le fichier.


68
2018-01-19 20:05



Cela devrait être constructible avec un tuyau. - gerrit
J'ai l'impression que tu pourrais juste faire unxz < file.tar.xz | tar x ou similaire. - thirtythreeforty
cela a fonctionné pour moi, où tar xf n'a pas. Ubuntu 12.04 - philshem
Au moins sur ma machine Ubuntu, unxz n'est pas équivalent à xz -dc, mais à xz -d. Donc pour extraire file.tar.xz à file.tar, vous écrivez simplement unxz file.tar.xz. Si vous voulez un équivalent à xz -dc, décompresser en stdout, utiliser xzcat. Par exemple xzcat file.tar.xz | tar x. - nwellnhof


xz est un compresseur de données sans perte. Vous devrez extraire la boule de goudron de xz et extraire le tar:

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

Ensuite, vous savez extraire un goudron

tar -xf my_archive.tar

La source: XZ Utils - Wikipedia.


24
2018-05-23 18:44



Meilleure réponse. xz n'a pas besoin de redirection stdout. Encore mieux: unxz -k - Mark Jeronimus


J'ai eu le même problème, le tar xf commande n'a pas pu l'extraire. Pour résoudre ce problème, vous devez installer le xz-utils paquet. La solution était:

sudo apt-get install xz-utils

puis:

tar xf myfile.tar.xz

12
2018-02-14 18:44





Qu'en est-il de

tar -xvf package.tar.xz

-x - extraire des fichiers

-v - liste verbeuse des fichiers traités

-f - utiliser le fichier d'archive spécifié


8
2018-03-05 17:16





Si tar reconnaît le format de compression, vous n'avez pas besoin d'indicateur:

tar xvf *.tar.xz

Si vous devez décompresser l'entrée manuellement, par exemple parce que votre tar est trop ancien pour reconnaître xz, ou si vous avez besoin d'un chemin spécial:

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

Les tuyaux sont plus rapides que la création d'un fichier intermédiaire non compressé et utilisent également moins d'espace disque!


3
2018-02-04 06:13





Je veux juste ajouter que si vous avez une ancienne version de GNU tar avant la version 1.22, lorsque les options --xz et -J étaient disponibles, vous pouviez compresser ou décompresser les fichiers tar.xz en utilisant --use-compress-program xz. Par exemple,

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

ou

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

3
2017-09-04 01:21