Skip to main content

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 (UbuntuDebian…) – 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