L'archivage et la compression sur Linux
Sur Linux, on utilise la commande tar pour créer des archives au format .tar.
Par défaut, une archive n’est pas compressée. Il faudra utiliser un logiciel de compression (gzip, bzip2 ou xz) pour compresser l’archive, ce qui donnera une archive au format .tar.gz, .tar.bz2 ou .tar.xz.
Heureusement, la commande tar – incluse nativement dans toutes les distributions Linux (Ubuntu, Debian…) – gère la compression. Elle permet ainsi de créer une archive .tar, puis de la compresser avec un logiciel de compression comme gzip et ce, en une seule commande.
Pour résumer :
- tar est un logiciel d’archivage qui permet de combiner plusieurs fichiers en un seul.
- gzip est un logiciel de compression utilisé pour réduire la taille d’un fichier.
- tar et gzip sont utilisés ensemble pour créer des archives compressées.
- .tar : fichier d’archive non compressé.
- .gz : fichier (archive ou non) compressé avec gzip.
- .tar.gz : fichier d’archive compressé avec gzip.
Quelle est la différence entre gzip, bzip2 et xz ?
- gzip utilise l’algorithme de compression Deflate.
- bzip2 utilise l’algorithme de compression du même nom (bzip2).
- xz utilise l’algorithme de compression LZMA2 (comme 7-Zip).
- Au niveau des performances :
- Vitesse d’extraction (du + rapide au + lent) : gzip > xz > bzip2.
- Vitesse de compression (du + rapide au + lent): gzip > bzip2 > xz.
- Taux de compression (du meilleur au moins bon) : xz > bzip2 > gzip.
- Compatibilité (Linux) : gzip > bzip2 > xz.
- Compatibilité (Windows) : xz > gzip, bzip2
Compresser un fichier ou un dossier
Pour compresser un répertoire entier ou bien un seul fichier, entrez la commande suivante :
tar -czvf nom-de-l-archive.tar.gz /chemin/vers/répertoire-ou-fichier
La compression fonctionne de manière récursive : elle compresse tous les fichiers et sous-dossiers du répertoire que vous avez spécifié.
Voici le détail des options :
- –c : crée un archive.
- –z : compresse l’archive avec gzip.
- –v : mode verbeux, affiche la progression.
- –f : permet de spécifier le nom du fichier d’archive.
Compresser plusieurs fichiers à la fois
Pour compresser un répertoire entier et des fichiers, entrez la commande suivante :
tar -czvf archive.tar.gz ~/chemin/repertoire/ ~/chemin/fichier.jpg ~/chemin/fichier2.odt
Décompresser une archive
La commande tar est aussi capable d’extraire (décompresser) une archive.
Par exemple, pour extraire le contenu du fichier archive.tar.gz dans le répertoire courrant, entrez la commande suivante :
tar -xzvf archive.tar.gz
Il s’agit en fait de la même commande que celle pour créer une archive, sauf que l’on remplace l’option -c par -x qui indique à tar d’extraire une archive au lieu d’en créer une.
Pour extraire le contenu de l’archive dans un répertoire spécifique, il faudra ajouter l’option -C. Par exemple, pour extraire le contenu du fichier archive.tar.gz dans le répertoire /tmp, entrez la commande suivante :
tar -xzvf archive.tar.gz -C /tmp
Bonus: cheat sheet
Compression
| Commande | Description |
|---|---|
tar -czvf archive.tar.gz [fichier(s)] |
Compresser avec tar + gzip |
tar -cjvf archive.tar.bz2 [fichier(s)] |
Compresser avec tar + bz2 |
tar -cJvf archive.tar.xz [fichier(s)] |
Compresser avec tar + xz |
Extraction
| Commande | Description |
|---|---|
tar -xzvf archive.tar.gz |
Extraire une archive gzip |
tar -xjvf archive.tar.bz2 |
Extraire une archive bz2 |
tar -xJvf archive.tar.xz |
Extraire une archive xz |
Lister les fichiers d’une archive
| Commande | Description |
|---|---|
tar -tzvf archive.tar.gz |
Lister les fichiers d’une archive gzip |
tar -tjvf archive.tar.bz2 |
Lister les fichiers d’une archive bz2 |
tar -tJvf archive.tar.xz |
Lister les fichiers d’une archive xz |