Linux / Commande unxz : décompresser un .xz et vérifier la restauration
unxz décompresse un fichier .xz et équivaut à xz -d. Il remplace normalement le fichier compressé après réussite : -k garde le .xz et -c envoie les données restaurées sur la sortie standard. Pour un .tar.xz, il retire seulement la couche xz ; les fichiers internes restent dans l’archive tar.
Choisir le mode et la destination
unxz [OPTIONS] FICHIER.xz [FICHIER.xz ...]
Vérifiez unxz --version et man xz. dump.sql.xz devient normalement dump.sql. Les formes suivantes sont des alternatives :
| Commande | Effet sur l’entrée |
|---|---|
| unxz dump.sql.xz | Retirer le .xz après décompression réussie vers dump.sql. |
| unxz -k dump.sql.xz | Garder le .xz et créer dump.sql. |
| unxz -c dump.sql.xz | Garder le .xz et envoyer les données sur la sortie standard. |
Le programme refuse normalement une destination déjà existante. -f peut la supprimer avant traitement : examinez les noms et choisissez un dossier ou un fichier libre au lieu de forcer par habitude. Pour les scripts, le manuel recommande d’utiliser explicitement xz -d ou xz -dc plutôt que de dépendre de la présence des alias unxz et xzcat.
Préparer, restaurer et comparer un fichier
Dans Bash, préparez un dossier neuf avec le texte de référence et une copie compressée. Chaque commande doit réussir avant de continuer :
demo=$(mktemp -d) &&
cd "$demo" &&
mkdir restore &&
printf 'first line\nsecond line\n' > reference.txt &&
xz -T1 -c reference.txt > restore/note.txt.xz &&
printf 'Repertoire de travail : %s\n' "$demo"
Gardez le chemin affiché et restez dans le même terminal. restore/note.txt n’existe pas encore, ce qui évite un conflit à la décompression :
unxz -k restore/note.txt.xz &&
ls -l restore/note.txt restore/note.txt.xz &&
cmp reference.txt restore/note.txt &&
printf 'Contenu identique\n'
La liste doit montrer le .xz conservé et note.txt restauré. cmp ne produit normalement rien et renvoie 0 si les octets sont égaux ; le dernier message apparaît seulement après réussite de la chaîne. Le texte restauré contient first line et second line, chacune suivie d’un saut de ligne.
Pour écrire sous un autre nom, utilisez une destination nouvelle :
unxz -c restore/note.txt.xz > restored-copy.txt &&
cmp reference.txt restored-copy.txt
La redirection > est ouverte par le shell avant le lancement de unxz et peut vider un fichier déjà présent. Ne redirigez jamais vers l’entrée. Une erreur peut laisser une sortie partielle ; vérifiez le code de retour avant d’utiliser cette copie.
Distinguer aperçu, intégrité et identité du contenu
Pour le texte connu de notre essai, un aperçu peut être lu sans créer un autre fichier :
unxz -c restore/note.txt.xz | head -n 2
Cela doit afficher les deux lignes du texte. N’envoyez pas un fichier binaire inconnu directement au terminal. Sur une entrée plus grande, le lecteur du tube peut s’arrêter avant la fin : voir les premières lignes ne contrôle pas tout le flux compressé.
unxz -t restore/note.txt.xz && printf 'Flux valide\n'
-t effectue une décompression d’essai, vérifie les contrôles disponibles puis jette les données sans écrire un fichier décompressé. Un succès est généralement silencieux. XZ Utils renvoie 0 en cas de succès, 1 en cas d’erreur et 2 pour un avertissement. Conservez les diagnostics si le flux est incomplet ou corrompu et recherchez une copie fiable.
Le contrôle interne ne prouve pas que le fichier est celui de l’expéditeur attendu. La comparaison avec un original ou une référence fiable répond à cette autre question. Lister des tailles avec xz -l est encore une opération distincte du test de toutes les données.
Comprendre les limites de mémoire et le cas .tar.xz
Le fichier peut demander bien plus d’espace de sortie que la taille du .xz. Les réglages utilisés à la compression déterminent aussi la mémoire nécessaire à la décompression. Un échec lié à une limite de mémoire ne signifie donc pas automatiquement que le flux est corrompu.
Consultez xz --info-memory pour les limites détectées et lisez le message précis. Si la machine n’a pas assez de mémoire disponible, prévoyez une autre machine ou une copie recompressée avec des paramètres adaptés ; ne désactivez pas les contrôles d’intégrité pour masquer le problème. Le manuel officiel XZ Utils et ses limites de mémoire décrit les options disponibles.
unxz backup.tar.xz laisse normalement backup.tar. Il ne crée pas à lui seul l’arborescence contenue dans l’archive. Le guide tar, liste des membres et extraction vers un dossier vide présente tar -tJf et tar -xJf avec leurs destinations. La commande xz et ses paramètres de compression explique comment préparer des fichiers qui restent adaptés à la machine de restauration.




