web-dev-qa-db-fra.com

Comment décompresser une archive qui utilise .xz?

J'ai l'habitude d'extraire des archives avec un indicateur -xfz, qui gère les archives gzip et bzip2.

Récemment, j’ai rencontré un fichier .tar.xz et j’aimerais le décompresser en une étape en utilisant tar, comment puis-je le faire?

744
Jorge Castro

Ubuntu inclut GNU tar, qui reconnaît le format par lui-même! Une commande fonctionne avec n’importe quelle 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 tar génère une erreur Cannot exec, vous devrez peut-être commencer par Sudo apt install xz-utils.

972
ramslök

Essayer

tar -xJf file.pkg.tar.xz

-J est le drapeau qui traite spécifiquement des fichiers .xz.

317
jrg

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

unxz < file.tar.xz > file.tar

… Qui équivaut à:

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

Ensuite, utilisez tar pour décompresser le fichier.

79
Mathias Bynens

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

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

Alors tu sais extraire un goudron

tar -xf my_archive.tar

Source: XZ Utils - Wikipedia .

30
Foxx

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

Sudo apt-get install xz-utils

puis:

tar xf myfile.tar.xz
15
Zsolt Sky
tar -xvf package.tar.xz

-x - extraire les fichiers

-v - liste verbalement les fichiers traités

-f - utilise le fichier archive spécifié

14
nsane

Je veux juste ajouter que si vous avez une ancienne version de GNU tar antérieure à la version 1.22 lorsque les options --xz et -J sont devenues disponibles, vous pouvez compresser ou décompresser les fichiers tar.xz à l’aide de --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
4
ScottH

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

tar xvf *.tar.xz

Si vous devez décompresser manuellement l'entrée, 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 pipes sont plus rapides que de créer un fichier intermédiaire non compressé et utilisent également moins d'espace disque!

4
Orion Lawlor

J'aime dtrx

Sudo apt install dtrx
dtrx your-file.tar.xz
4
Boris

Wow, c'est un très bon. At-il été fait avec 7Zip sur un Mac? Essaye ça:

7z x -so file.tar.xz | tar xf -
3
user8290

Ubuntu est livré avec Python (Python 2.7 et Python 3), qui contient les modules nécessaires à l'extraction des archives. Donc, si pour quelque raison que ce soit, la commande tar est manquante (disons que votre administrateur système l’a supprimée et que vous n’avez pas le privilège Sudo pour l’installer), vous pouvez utiliser:

python3 -c 'import tarfile,sys; b = tarfile.open(sys.argv[1]);print(b.extractall())' ./archive.xz 

En tant que script court, il est plus lisible que:

#!/usr/bin/env python3
import tarfile,sys

with tarfile.open( sys.argv[1] ) as fd:
    fd.extractall()

Supposons que j'ai créé un fichier .xz avec tar cJf thing.xz /etc/passwd. L’archive contiendra le répertoire etc avec le fichier passwd. En utilisant le script ci-dessus, le répertoire etc sera créé dans votre répertoire de travail actuel et contiendra le fichier passwd. Bien sûr, cela peut toujours être étendu en spécifiant le chemin où vous voulez extraire l'intérieur de la fonction extractall().

3

unar est un programme assez simple et facile à écrire, permettant de désarchiver presque tous les formats, y compris 7z et RAR

il semble être écrit en (GNU) Objective-C et nécessite donc l’installation de certaines bibliothèques gnustep (implémentation de GNU Objective-C) ( gnustep-base-runtime et libgnustep-base1.25 )

si vous utilisez --install-suggère ou avez configuré apt pour installer les packages suggérés, unar suggérera et installera de nombreux programmes GUI GNUStep qui ne sont pas ce que vous voulez.

Sudo apt install --no-install-suggests unar 
unar linux-source.tar.xz

il créera automatiquement le répertoire de sortie linux-source.

0
cat