Ce tutoriel vous explique comment compresser et décompresser des fichiers sur Linux en utilisant la commande tar.
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 possibilité de choisir entre différents logiciels de compression (gzip, bzip2 ou xz) selon vos besoins !
Sommaire
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 :
- 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.
- 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. 😉
Linux : compresser et décompresser des fichiers avec tar
via le Terminal
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
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.pdf
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).
via 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 :
- Cliquez droit sur le dossier à compresser → Compresser.
- Puis sélectionnez une des options suivantes :
- Voilà, votre archive compressée a bien été créée !
Sur GNOME :
- Cliquez droit sur le dossier à compresser → Compresser.
- Entrez un nom pour le fichier d’archive puis sélectionnez le format de l’archive :
- Voilà, votre archive compressée a bien été créée !
Décompresser une archive
Sur KDE Plasma :
- Cliquez droit sur l’archive à décompresser → Extraire.
- 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.
- Voilà, votre archive a bien été décompressée !
Sur GNOME :
- Cliquez droit sur l’archive à décompresser.
- 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.
- 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 |