Installé avec le paquet xz-utils
Voir aussi : unxz, xzcat, xzgrep, tar, gzip, gunzip, bzip2, bunzip2, zip, unzip et cpio
Comparatif des formats xz, gzip et bzip2
On utilisera ici un fichier référence appelé sample.tar d’une taille de 100Mo.
Le tableau ci-dessous synthétise les résultats de compression, pour chaque format et chaque niveau de compression.
Le temps de compression affiché est en secondes et la taille du fichier résultant est en Mo (ou pourcentage du fichier original).
Format → | XZ | GZIP | BZIP2 | |||
Compression ↓ | Temps | Mo/% | Temps | Mo/% | Temps | Mo/% |
0 | 5.487 | 19 | – | – | – | – |
1 | 7.563 | 17 | 1.796 | 25 | 10.008 | 19 |
2 | 11.358 | 16 | 1.883 | 24 | 10.262 | 18 |
3 | 18.924 | 16 | 2.038 | 23 | 10.412 | 17 |
4 | 31.184 | 15 | 2.135 | 21 | 10.575 | 17 |
5 | 46.370 | 14 | 2.628 | 21 | 11.126 | 17 |
6 | 54.609 | 14 | 3.320 | 20 | 11.214 | 17 |
7 | 59.790 | 14 | 3.917 | 20 | 11.295 | 17 |
8 | 71.670 | 14 | 5.537 | 20 | 11.347 | 16 |
9 | 164.387 | 13 | 6.088 | 20 | 11.485 | 16 |
Le meilleur compromis selon moi, du point de vue du rapport temps/taille finale d’une part, et consommation de RAM et CPU (directement liés au niveau de compression utilisé) d’autre part, apparait en rouge pour chaque format, soit :
- XZ : niveau 1 (niveau par défaut : 6)
- GZIP : niveau 6 (niveau par défaut : 6)
- BZIP2 : niveau 9 (niveau par défaut : 9)
Afficher la version de la commande xz
xz --version
ou
apt-cache policy xz-utils
Compresser une archive ou un fichier au format xz
xz filename
Le fichier est alors compressé au format xz avec le niveau de compression 6 (niveau par défaut).
Toutefois, le fichier original n’est pas conservé.
Le fichier résultant sera nommé, par défaut, filename.xz.
xz -k filename
Le fichier est alors compressé au format xz avec le niveau de compression 6 (niveau par défaut).
Le fichier original est conservé (option -k pour keep).
Le fichier résultant sera nommé, par défaut, filename.xz.
ex :
# du sample_3420.tar 3420 sample_3420.txt # xz -k sample_3420.tar # du sample_3420.tar.xz 684 sample_3424.tar.xz
xz -k9 filename
Le fichier est alors compressé au format xz avec le niveau de compression 9, c’est-à-dire le niveau maximal.
Le fichier original est conservé (option -k pour keep).
Le fichier résultant sera nommé, par défaut, filename.xz.
xz -c1 filename > outputfilename.xz
Le fichier est alors compressé au format xz avec le niveau de compression 1 (meilleur compromis).
Le fichier original est conservé (option -c pour spécifier un fichier de sortie).
Le fichier résultant sera outputfilename.xz
ex :
# xz -c1 sample.tar > result.tar.xz
Le niveau peut être défini avec une valeur allant de 0 à 9 (cette dernière étant la valeur de compression maximale).
Plus le niveau de compression est élevé, plus la RAM et le CPU seront sollicités, d’une part, mais aussi le temps de compression augmentera considérablement, d’autre part.
Décompresser un fichier compressé au format xz
xz -d filename.xz
Le fichier original est décompressé mais n’est pas conservé.
Le fichier résultant sera filename.
Equivaut à :
unxz filename.xz
xz -dk filename.xz
Le fichier original est décompressé et conservé (option -k pour keep).
Le fichier résultant sera filename.
Equivaut à :
unxz -k filename.xz
xz -dc filename.xz > outputfilename
Le fichier original est décompressé et conservé (option -c pour spécifier un fichier de sortie).
Le fichier résultant sera outputfilename.
Equivaut à :
unxz -c filename.xz > outputfilename
Mode verbeux
xz -v [...]
Affichera l’état d’avancement de la compression/décompression et le ratio final.
ex :
Tester l’intégrité d’un fichier compressé au format xz
xz -t filename.xz
Calculera le CRC64 par défaut.
ex :
# xz -t test.tar.xz
xz : test.tar.xz: Fin des données inattendue
Afficher les caractéristiques d’un fichier compressé au format xz
xz -l filename.xz
Seront alors affichés notamment : les tailles du fichier compressé et décompressé, le ratio compression/décompression, le type de CRC et le nom du fichier.
xz -lvv filename.xz
Affichera un niveau de détails maximal.
ex :
# xz -l *.xz
Flux Blocs Compressé Décompressé Ratio Vérif Nom de fichier
1 1 18,4 MiB 100,0 MiB 0,184 CRC64 sample0.tar.xz
1 1 16,6 MiB 100,0 MiB 0,166 CRC64 sample1.tar.xz
1 1 15,9 MiB 100,0 MiB 0,159 CRC64 sample2.tar.xz
1 1 15,6 MiB 100,0 MiB 0,156 CRC64 sample3.tar.xz
1 1 14,9 MiB 100,0 MiB 0,149 CRC64 sample4.tar.xz
1 1 13,8 MiB 100,0 MiB 0,138 CRC64 sample5.tar.xz
1 1 13,5 MiB 100,0 MiB 0,135 CRC64 sample6.tar.xz
1 1 13,3 MiB 100,0 MiB 0,133 CRC64 sample7.tar.xz
1 1 13,1 MiB 100,0 MiB 0,131 CRC64 sample8.tar.xz
1 1 13,0 MiB 100,0 MiB 0,130 CRC64 sample9.tar.xz
-------------------------------------------------------------------------------
10 10 148,1 MiB 1 000,0 MiB 0,148 CRC64 10 fichiers
On a, ci-dessus, l’exemple de 10 fichiers au format xz compressés du niveau 0 au niveau 9.
Concaténer des fichiers à un fichier xz existant
xz -c filename1 > outputfilename.xz
xz -c filename2 >> outputfilename.xz
Equivalent de :
xz -c filename1 filename2 > outputfilename.xz
Equivaut à :
cat filename1 filename2 | xz > outputfilename.gz
Utile pour ajouter des logs à un fichier de logs central.
ex :
# xz -c logfile1.txt > fulllogs.xz # xz -c logfile2.txt >> fulllogs.xz
Améliorer le taux de compression d’un fichier xz existant
xz -cd filename.xz | xz -9 > newfilename.xz
Afficher la progression d’une compression ou décompression
Compression : Progression non graphique
pv archive.tar | xz -c1 > archive.tar.xz
ex :
# pv sample.tar | xz -c1 > sample.tar.xz

Compression : Progression graphique
(pv -n archive.tar | xz -c1 > archive.tar.xz) 2>&1 | dialog --gauge "text" height width
ex :
# (pv -n sample.tar | xz -c1 > sample.tar.xz) 2>&1 | dialog --gauge "Progression..." 7 50

Décompression : Progression non graphique
pv archive.tar.xz | xz -dc > archive.tar
ex :
# pv sample.tar.xz | xz -dc > sample.tar

Décompression : Progression graphique
(pv -n archive.tar.xz | xz -dc > archive.tar) 2>&1 | dialog --gauge "text" height width
ex :
# (pv -n sample.tar.xz | xz -dc > sample.tar) 2>&1 | dialog --gauge "Progression..." 7 50
