931 votes

Comment décompresser une archive qui utilise .xz ?

J'ai l'habitude d'extraire les tarballs avec une -xfz qui gère les archives gzip et bzip2.

Récemment, je suis tombé sur un .tar.xz et je voudrais le décompresser en une seule étape en utilisant tar Comment puis-je faire ça ?

12 votes

Notez que vous devrez peut-être installer xz-utils si elle n'est pas déjà présente

5 votes

tar --help listes tar drapeaux. -xzf s'applique à gzip . -xjf a bz2 . -xJf a xz .

0 votes

Meilleure question à poser que celle de savoir comment faire avec du goudron : Utilisez unar ou 7z et ne vous souciez plus jamais de choisir le bon programme pour votre type d'archives. C'est la seule solution envisageable avec l'arrivée de plus en plus de types d'archives. À moins que vous ne vous intéressiez aux détails techniques...

1179voto

ramslök Points 12000

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

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

etc. Si tar donne un Cannot exec vous devrez peut-être sudo apt install xz-utils d'abord.

0 votes

Je pense que c'est avec bsdtar :)

44 votes

C'est une fonctionnalité de GNU tar. Je ne connais pas les implémentations concurrentes, mais GNU tar devrait être la plus pertinente pour ubuntu. gnu.org/software/tar/manual/tar.html#SEC131

50 votes

Si vous rencontrez tar: xz: Cannot exec: No such file or directory , installer xz-utils : sudo apt-get install xz-utils

378voto

jrg Points 58143

Essayez

tar -xJf file.pkg.tar.xz

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

75 votes

Je me demande combien de drapeaux nous aurons en 2020. Comme... 45 compressions différentes ? Connaître les commutateurs tar est déjà une ceinture noire en Linux-fu. :/

25 votes

@Shiki : C'est probablement la raison pour laquelle il ne vous fait plus spécifier le drapeau du format de compression. (Voir la réponse de ramslök).

34 votes

88voto

Kris C Points 2031

Si pour une raison quelconque, le tar ne fonctionnent pas (peut-être parce que vous utilisez les modules intégrés d'OS X), essayez ceci :

unxz < file.tar.xz > file.tar

ce qui équivaut à :

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

Ensuite, utilisez tar pour désarchiver le fichier.

3 votes

Cela devrait être constructible avec un tuyau.

7 votes

J'ai l'impression que tu pourrais juste faire unxz < file.tar.xz | tar x ou similaire.

7 votes

Ça a marché pour moi, où tar xf pas. ubuntu 12.04

38voto

Foxx Points 381

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

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

Alors vous savez extraire un tar

tar -xf my_archive.tar

Source : XZ Utils - Wikipédia .

1 votes

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

0 votes

@MarkJeronimus Je ne trouve pas cela très bon car cela crée un fichier intermédiaire. En utilisant GNU tar ou un tuyau devrait demander moins de ressources.

2 votes

Cela a fonctionné pour moi, mais il faut noter que cela supprimera le fichier tar.xz original.

21voto

Zsolt Sky Points 311

J'ai eu le même problème, le tar xf La 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

alors :

tar xf myfile.tar.xz

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X