Linux : compresser et décompresser des fichiers avec tar (gzip, bzip2, xz)

4/5
7 votes
2.7K vues

Crédits : Smashicons (CC 3.0 BY)

Le Crabe

Le Crabe vous a aidé ? Aidez-le en retour en désactivant votre bloqueur de publicité ! 👍

(merci pour le coup de pince 😊)

Par Le Crabe

Le

Mis à jour le

2.7K vues

4 commentaires

Ce tutoriel vous explique comment compresser et décompresser des fichiers sur Linux en utilisant la commande tar.

Le Crabe

Le Crabe vous a aidé ? Aidez-le en retour en désactivant votre bloqueur de publicité ! 👍

(merci pour le coup de pince 😊)

Vous pensez que c’est compliqué ? C’est juste une impression ! Car vous allez voir qu’il est très simple de créer et d’extraire des archives avec Linux.

Dans ce tutoriel, vous aurez le choix entre utiliser l’interface graphique ou bien la ligne de commande avec la possiblité de choisir entre différents logiciels de compression (gzip, bzip2 ou xz) selon vos besoins !

Utilisateur de Windows ? Suivez ce tutoriel : compresser un fichier ou un dossier avec 7-Zip (Windows).

Préambule : 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.

Mmmh… Tu peux résumer ? C’est quoi la différence entre tar, gzip et tout le reste ?

Pour résumer :

  1. tar est un logiciel d’archivage qui permet de combiner plusieurs fichiers en un seul.
  2. gzip est un logiciel de compression utilisé pour réduire la taille d’un fichier.
  3. tar et gzip sont utilisés ensemble pour créer des archives compressées.
  4. .tar : fichier d’archive non compressé.
  5. .gz : fichier (archive ou non) compressé avec gzip.
  6. .tar.gz : fichier d’archive compressé avec gzip.
  7. Il existe également d’autres logiciels de compression comme bzip2 et xz qui compressent les archives en utilisant d’autres algorithmes de compression.

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

La commande tar dispose d’un grand nombre d’options, mais il vous suffit d’en mémoriser seulement quelques unes pour créer rapidement des archives compressées.

tar permet évidemment de faire le chemin inverse et d’extraire (décompresser) des archives.

Voici comment l’utiliser : d’abord avec le Terminal et ensuite avec le Gestionnaire de fichiers. 😉

Le Crabe

Le Crabe vous a aidé ? Aidez-le en retour en désactivant votre bloqueur de publicité ! 👍

(merci pour le coup de pince 😊)

Méthode n°1 : avec le Terminal

Compresser des fichiers

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

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.

Par exemple :

tar -czvf wallpapers.tar.gz ~/Images/Wallpapers/

La compression fonctionne de manière récursive : elle compresse tous les fichiers et sous-dossiers du répertoire que vous avez spécifié.

Compresser plusieurs fichiers à la fois

La commande tar peut également être utilisée pour compresser plusieurs dossiers et fichiers en même temps. Il suffit simplement de saisir une liste de fichiers et de dossiers à compresser au lieu d’un seul.

Par exemple, pour compresser le dossier ~/Images/Wallpapers, le fichier ~/Téléchargements/photo.jpg et le fichier ~/Documents/sample.pdt, vous devez saisir la commande suivante :

tar -czvf archive.tar.gz ~/Images/Wallpapers/ ~/Téléchargements/photo.jpg ~/Documents/sample.odt

Compresser avec xz ou bz2

Même si la compression avec gzip est la solution plus utilisée pour créer des archives compressées, tar prend également en charge la compression avec xz et bzip2.

Pour rappel, xz utilise l’algorithme de compression LZMA2 et bzip2 utilise l’algorithme du même nom. Globalement, xz est le plus performant et permet d’obtenir un meilleur taux de compression que gzip et bzip2.

  • Pour compresser avec xz : remplacez l’option -z (pour gzip) par -J pour xz. Cela créera un fichier d’archive au format .tar.xz.
  • Pour compresser avec bzip2 : remplacer l’option -z (pour gzip) par -j pour bzip2. Cela créera un fichier d’archive au format .tar.bz2.

Par exemple, pour compresser un répertoire avec xz, entrez la commande suivante :

tar -cJvf archive.tar.xz ~/Documents/

Et pour compresser avec bzip2 :

tar -cjvf archive.tar.bz2 ~/Documents/

Exclure des dossiers/fichiers

Pour compresser un répertoire en excluant certains fichiers ou dossiers, vous pouvez utiliser l’option --exclude pour chaque dossier et fichier à exclure.

Par exemple, pour compresser le répertoire ~/Images/Wallpapers mais sans les sous-dossiers ~/Images/Wallpapers/Ubuntu et ~/Images/Wallpapers/Fedora, utilisez la commande suivante :

tar -czvf archive.tar.gz ~/Images/Wallpapers --exclude=~/Images/Wallpapers/Ubuntu --exclude=~/Images/Wallpapers/Fedora

Vous pouvez également utiliser des patterns (ou modèles) pour exclure des types de fichiers précis. Par exemple, pour exclure tous les fichiers .jpg, utilisez la commande suivante:

tar -czvf archive.tar.gz ~/Images/Wallpapers --exclude=*.jpg

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

Si l’archive était compressée avec bzip2, il faudrait remplacer l’option -z (pour gzip) par -j (pour bzip2). Et pour une archive compressée avec xz, il faudrait utiliser -J (pour xz).

Le Crabe

Le Crabe vous a aidé ? Aidez-le en retour en désactivant votre bloqueur de publicité ! 👍

(merci pour le coup de pince 😊)

Méthode n°2 : avec le Gestionnaire de fichiers

Les environnements de bureau comme GNOME et KDE Plasma permettent de compresser et de décompresser des fichiers via leur gestionnaire de fichiers :

  • Pour GNOME : le gestionnaire de fichiers GNOME Fichiers + le logiciel d’archivage GNOME Archive Manager.
  • Pour KDE Plasma : le gestionnaire de fichiers Dolphin + le logiciel d’archivage Ark.

Voyons comment les utiliser pour compresser des fichiers et extraire une archive.

Compresser des fichiers

Sur KDE Plasma :

  1. Cliquez droit sur le dossier à compresser → Compresser.
  2. Puis sélectionnez une des options suivantes :
    • Ici (en tar.gz) : pour créer une archive tar compressée avec gzip (Deflate).
    • Ici (en zip) : pour créer une archive zip compressée (Deflate).
    • Compresser vers : plus avoir plus d’options de compression.
  3. Voilà, votre archive compressée a bien été créée !

Sur GNOME :

  1. Cliquez droit sur le dossier à compresser → Compresser.
  2. Entrez un nom pour le fichier d’archive puis sélectionnez le format de l’archive :
    • .zip : format ZIP, compression Deflate.
    • .tar.xz : format tar, compression LZMA2.
    • .7z : format 7z, compression LZMA.
  3. Voilà, votre archive compressée a bien été créée !

Décompresser une archive

Sur KDE Plasma :

  1. Cliquez droit sur l’archive à décompresser → Extraire.
  2. Puis sélectionnez une des options suivantes :
    • Extraire l’archive ici : décompresse l’archive dans le répertoire courrant.
    • Extraire l’archive vers : ouvre la fenêtre Extraire, permet de choisir le répertoire de destination et diverses options d’extraction.
    • Extraire l’archive ici, détecter le sous-dosser : crée un sous-dossier dans le répertoire courrant et y extrait le contenu de l’archive.
  3. Voilà, votre archive a bien été décompressée !

Sur GNOME :

  1. Cliquez droit sur l’archive à décompresser.
  2. Puis sélectionnez une des options suivantes :
    • Extraire ici : décompresse l’archive dans le répertoire courrant.
    • Extraire vers : permet de choisir le répertoire de destination pour l’extraction.
  3. Voilà, votre archive a bien été décompressée !

Bonus : antisèche (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
Partagez cet article !
Besoin d'aide ?

Malgré la lecture de l'article « Linux : compresser et décompresser des fichiers avec tar (gzip, bzip2, xz) », vous avez encore des questions qui vous trottent dans la tête ? Vous avez toujours les mêmes problèmes qu'au départ ? Vous êtes bloqués et vous ne savez plus quoi faire ?

Faites appel à la communauté du Crabe en posant votre question sur le forum !

Poser ma question  

4 commentaires

Page 1 sur 1

  • Le PoissonClown

    Superbement bien expliqué ! 😃

    Et pour éviter de recopier tout le chemin à la main, on peut faire un glissé-déposé du dossier dans la fenêtre du terminal : cela recopie son adresse.

    Ou alors, si on veut taper l’adresse rapidement, on saisis les premières lettres du dossier, et on appuie sur la touche [tabulation] pour compléter la suite, ça va un peu plus vite.

    • Merci @Le PoissonClown, j’ai essayé de rentre ça le plus clair possible car au premier abord ça peut faire peur la commande tar. 😛

      Cool l’astuce de glisser-déposer la dossier du Gestionnaire de fichiers vers le Terminal ! Je ne connaissais pas. 👍

      Tu en sais beaucoup sur Linux pour quelqu’un qui utilise Windows au quotidien. 😄

      • Le PoissonClown

        Bah écoutes, j’ai acheté des brochures, y-a rien de mieux pour se former. Dans la brochure hors-série de Linux Inside (150 pages) qui s’appelle « Ubuntu – L’indispensable pour découvrir Ubuntu, ses usages, ses applications et les maîtriser ». Dedans, il y a tout ! Et en p. 10 il y a énormément d’astuces sur le terminal. Et puis je me suis aussi procuré le hors-série 27 de Linux Pratique, qui initie au commandes Linux, histoire de savoir faire des scripts. Et c’est pareil : c’est très exhaustif, après ça, t’es cap de plein de choses.