Linux / Commande xz : compresser, conserver la source et régler les threads
xz compresse des fichiers au format .xz ; avec un fichier nommé, il retire normalement l’original après réussite. Utilisez -k pour conserver la source ou -c pour choisir une sortie distincte. Le niveau et le nombre de threads influencent les ressources nécessaires, y compris la mémoire de la machine qui décompressera le fichier.
Compresser un fichier en conservant la source
Les exemples concernent XZ Utils. Vérifiez xz --version et man xz : certaines valeurs par défaut ont changé entre versions. La syntaxe est :
xz [OPTIONS] [FICHIER ...]
Pour suivre une manipulation complète dans Bash, créez un dossier neuf avec un texte de référence :
demo=$(mktemp -d) &&
cd "$demo" &&
printf 'alpha\nbeta\ngamma\n' > note.txt &&
printf 'Repertoire de travail : %s\n' "$demo"
Poursuivez seulement si la préparation réussit, dans le même terminal, et gardez le chemin affiché. Le choix -T1 rend ici explicite le mode à un seul thread :
xz -T1 -k note.txt && ls -l note.txt note.txt.xz
Les deux noms doivent être présents. Sans -k ou sortie standard, une compression ordinaire remplace la source ; elle ne crée pas une copie de sauvegarde indépendante. xz refuse normalement une destination déjà existante et signale une erreur, plutôt que de demander systématiquement une confirmation.
Pour choisir une autre sortie tout en gardant note.txt :
xz -T1 -c note.txt > note-copy.txt.xz
-c implique la conservation de l’entrée. Cependant, le shell traite > avant de démarrer xz et peut tronquer un fichier déjà présent. Utilisez une destination nouvelle et jamais le nom de la source ; -c ne protège pas le fichier désigné par la redirection.
Tester le flux et vérifier une restauration
xz -t note.txt.xz &&
xz -dc note.txt.xz > restored-note.txt &&
cmp note.txt restored-note.txt &&
printf 'Contenu identique\n'
-t décompresse pour contrôler l’intégrité, puis jette le résultat sans créer de fichier restauré. -dc décompresse vers la sortie standard et conserve le .xz. Dans cet essai, restored-note.txt est nouveau ; cmp compare ses octets avec note.txt et le message final apparaît seulement après réussite de la chaîne.
Le contenu attendu est alpha, beta puis gamma, chacun sur sa ligne. Un succès est habituellement silencieux pour xz -t et cmp. Les codes de sortie de xz sont 0 pour un succès, 1 pour une erreur et 2 pour un avertissement. Si une étape échoue, lisez le diagnostic ; une sortie partielle peut rester et sa seule présence ne prouve pas que la restauration a réussi.
Un contrôle de flux ne certifie ni l’expéditeur ni la bonne version du document. Gardez les contrôles d’intégrité activés et comparez avec une référence fiable si cette identité est importante. Pour consulter les tailles et les informations du conteneur, utilisez :
xz -l note.txt.xz
-l n’est pas un inventaire de fichiers comme tar -t et ne remplace pas le test du contenu avec -t. Un .xz peut contenir des flux concaténés, mais ce n’est pas une archive fournissant les chemins de fichiers à extraire séparément.
Choisir le niveau et limiter les threads
| Réglage | Critère de choix |
|---|---|
| -0 à -9 | Préréglages de compression ; le défaut est -6. |
| -e | Variante plus lente du préréglage, sans garantie de meilleur résultat. |
| -T1 | Mode de compression à un seul thread. |
| -T2 | Demander jusqu’à deux threads de travail, selon les données et la mémoire. |
| -T0 | Choisir automatiquement selon les capacités de la machine et les limites applicables. |
| -v | Afficher les informations de progression ou le bilan selon le contexte. |
Un niveau élevé peut demander nettement plus de mémoire ; les paramètres de compression déterminent aussi une partie des besoins de décompression. Ne choisissez pas -9e systématiquement pour un fichier destiné à une machine limitée. Un fichier minuscule ou déjà compressé peut grossir ; aucun gain ni classement de vitesse universel n’est garanti.
Pour essayer un préréglage plus modéré et un nombre de threads borné, en conservant le texte :
xz -3 -T2 -c note.txt > note-level3.txt.xz
xz -t note-level3.txt.xz
Le petit texte sert à vérifier la commande, pas à mesurer le parallélisme : il peut être trop court pour occuper deux threads. Le mode multithread utilise généralement davantage de mémoire et peut produire des octets compressés différents du mode monothread, même si le contenu restauré est identique.
Dans les versions récentes, le défaut du nombre de threads est automatique ; dans XZ Utils 5.4.x et antérieurs, il était de 1. Si ce choix compte pour une tâche, précisez -T au lieu de le déduire du nom xz. Le manuel officiel xz, options de compression et de mémoire décrit aussi les limites de mémoire et leur adaptation éventuelle des paramètres.
Utiliser tar pour les dossiers et éviter la force inutile
xz traite normalement plusieurs arguments comme plusieurs fichiers distincts. Pour enregistrer un répertoire avec ses chemins dans un seul fichier .tar.xz, tar regroupe les membres et xz compresse le flux. Le guide tar avec création et restauration d’archives .tar.xz montre l’usage du J majuscule dans tar -cJf et les contrôles avant extraction.
-f peut supprimer une destination déjà présente avant traitement et change aussi le traitement de certains liens ou entrées. Inspectez le conflit au lieu de forcer. Enfin, xz est un outil de compression, sans chiffrement : un fichier réduit n’est pas devenu confidentiel et ne remplace pas une stratégie de sauvegarde.




