Linux gère la plupart des formats de fichiers compresses (gzip, zip, rar, 7zip) mais aussi tar.
Par défaut la compression de fichiers se fait avec avec des solutions open source gzip ou bzip2 qui ne peuvent compresser un seul fichier à la fois.
Bien entendu, on peut aussi utiliser des alternatives libres ou non comme unzip, unrar ou même 7zr.
Il existe pour cela des gestionnaires d’archive en graphique mais on peut aussi utiliser des commandes tar, gzip, bzip2, 7z, 7zr en ligne de commandes.
Très pratique lorsqu’il s’agit de transférer des fichiers par le réseau entre plusieurs machines ou pour créer des sauvegardes.
Ce tutoriel regroupe toutes les commandes pour compresser et décompresser des fichiers sur Linux.

Table des matières
- 1 tar, untar, gzip, bzip, rar, ZIP, 7zip – La compression/décompression de fichiers sur Linux
- 1.1 Gzip : Compresser et décompresser des fichiers gz
- 1.2 bzip2 : Compresser et décompresser des fichiers bz2
- 1.3 Tar : Comment tar et untar un fichier
- 1.3.1 Compresser un répertoire avec tar
- 1.3.2 Lister les fichiers d’un fichier tar sans l’extraire
- 1.3.3 Décompresser le contenu d’un fichier tar
- 1.3.4 Exclure des fichiers ou repertoire dans la compression tar
- 1.3.5 Extraire un répertoire ou fichier spécifique d’un fichier tar
- 1.3.6 tar over SSH
- 1.3.7 ZIP : compresser et décompresser des fichiers ZIP
- 2 unrar-free : Décompresser des fichiers RAR
- 3 Liens
tar, untar, gzip, bzip, rar, ZIP, 7zip – La compression/décompression de fichiers sur Linux
Gzip : Compresser et décompresser des fichiers gz
gzip est un programme de compression très populaire sur Linux.
Il est plus rapide que bzip2 mais le taux de compression est un peu moins bon.
Compresser des fichiers ou dossiers
Pour compresser plusieurs fichiers avec gzip :
gzip fichier1 fichier2 fichier3
Vous obtenez alors des fichiers fichier1.gz, fichier2.gz, fichier3.gz
Pour obtenir un fichier unique, il faut utiliser tar (voir plus bas).
Pour compresser tous les fichiers d’un répertoire donné au format gzip, utilisez l’option -r :
gzip -r /repertoire
Décompresser un fichier
Voici comment décompresser un fichier.gz avec gzip.
Cela supprime le fichier compressé initial.
gzip -d nom_fichier.gz
Une autre commande que vous pouvez utiliser pour décompresser un fichier Gzip est gunzip.
Cette commande est essentiellement un alias de gzip -d :
gunzip nom_fichier.gz
Pour garder le fichier compressé initial, on utilise l’option -k :
gzip -dk nom_fichier.gz
Lister le contenu d’un fichier gz
Voici comment afficher le contenu d’un fichier gz avec des statistiques de compression.
gzip -lv fichier.gz
Options et autres commandes liées à gzip
Enfin il existe des dérivés de commandes pour lire le contenu d’un fichier sans devoir le décompresser.
C’est notamment utile pour les fichiers journaux qui utilisent gzip par défaut.
- zcat : lire un fichier compressé (gzippé)
- zmore : lire un fichier compressé (gzippé)
- zless : lire un fichier compressé (gzippé)
bzip2 : Compresser et décompresser des fichiers bz2
Compresser des fichiers ou dossiers
Pour compresser un fichier avec bzip2.
bzip2 nom_fichier.txt
Cela va créer l’archive fichier.txt.bz2
Mais là aussi, on peut créer plusieurs fichiers compressés pour obtenir fichier1.txt.bz2 fichier2.txt.bz2 fichier3.txt.bz2 :
bzip2 fichier.txt fichier1.txt fichier1.txt
Décompresser un fichier bz2
Dans cet exemple, on décompresse fichier.txt.bz2 pour obtenir fichier.txt
bzip2 -d fichier.txt.bz2
Tar : Comment tar et untar un fichier
Tar est une commande qui permet de regrouper des fichiers ensemble.
En clair donc il permet de paqueter les fichiers.
Ainsi, lorsque l’on tar un dossier, vous créez un fichier unique contenant toute l’arborescence du dossier.
Attention, le fichier tar n’est pas compressé.
Pour compresser un fichier tar, on peut demander à utiliser gzip ou bzip2.
Les options de la commande tar :
Options | Description |
-c | Créer une nouvelle archive |
-v | Mode bavard |
-f | Utiliser le fichier archive |
-z | Filtre d’archive pour gzip |
-j | Filtre d’archive pour bzip2 |
-x | extraire le contenu du fichier tar |
-t | Liste le contenu d’un fichier tar |
-C | dir : Passez à REPERTOIRE avant d’effectuer toute opération |
–exclude | Exclure les fichiers correspondant à PATTERN / REPERTOIRE / NOM |
–wildcards | Demande à tar de traiter les arguments de ligne de commande comme des modèles de globulation |
Compresser un répertoire avec tar
Le paramètre -c permet de créer un nouvelle archive compressée.
Pour compresser un répertoire entier avec gzip :
tar -zcvf fichier.tar.gz /chemin/repertoire
Pour compresser plusieurs répertoires avec gzip :
tar -zcvf fichier.tar.gz dir1 dir2 dir3
Mais si vous possédez déjà un fichier tar et souhaitez ajouter de nouvelles fichiers à ce dernier, cela est possible avec la commande -r.
Pour ajouter de nouveaux fichiers à l’archive sauvegarde.tar.gz :
tar -rvfz sauvegarde.tar.gz /repertoire
Compresser un répertoire avec tar avec bzip2, on retrouve le même principalement simplement on remplace z par j :
tar -cjvf fichier.tar.bz2 /chemin/repertoire
Lister les fichiers d’un fichier tar sans l’extraire
Pour visualiser le contenu d’un fichier tar sans le décompresser, on utilise l’option t à la place de x :
tar -ztvf fichier.tar.gz
tar -jtvf fichier.tar.bz2
Décompresser le contenu d’un fichier tar
Vous pouvez extraire une archive ou une archive tar avec la commande tar. La syntaxe est :
tar -xzvf fichier.tar.gz
tar -xjvf fichier.tar.bz
Pour décompresser un fichier tar dans un répertoire spécifique, on utilise l’option -C.
Par exemple pour décompresser dans /tmp :
tar -xjvf archive.tar.bz2 -C /tmp/
Exclure des fichiers ou repertoire dans la compression tar
Voici comment exclure des fichiers ou répertoires lors de la compression tar :
tar -zcvf archive.tar.gz --exclude='repertoire1' --exclude='regex' /repertoire
Par exemple pour exclure le répertoire Téléchargements de votre archive tar :
tar -czvf /nfs/backup.tar.gz --exclude="Telechargements" /home/malekalmorte/
Extraire un répertoire ou fichier spécifique d’un fichier tar
Parfois on a pas besoin d’extraire le contenu entier d’un fichier tar mais on désire extrair un répertoire ou fichier spécifique d’un fichier tar.
Par exemple pour extraire le dossier /etc de sauvegarde.tar.gz :
tar -zxvf sauvegarde.tar.gz etc/
On peut aussi utiliser les caractères joker pour extraire certains contenus en particulier.
Par exemple, pour extraire de images.tar tous les fichiers commençant par pic, quel que soit leur préfixe de répertoire, vous pouvez taper :
tar -xf cbz.tar --wildcards --no-anchored 'pic*'
tar over SSH
Comment utiliser la commande tar sur une session SSH sécurisée exécutée sur un système Linux ou Unix?
Plusieurs syntaxes sont possibles pour transférer un fichier tar via SSH.
Voici la première :
ssh [email protected] tar czf - /source-repertoire/ /destination/fichier.tar.gz
Deuxième syntaxe :
ssh [email protected] 'cd /source-repertoire/ tar -cf - fichier | gzip fichier.tar.gz
ZIP : compresser et décompresser des fichiers ZIP
Linux permet aussi de créer des fichiers ZIP ou RAR.
Ces derniers n’étant pas des formats de compressions libres, les programmes ne sont en général pas installés par défaut dans les distributions Linux.
Il faut donc installer le programme.
Par exemple sur Debian :
apt-get install zip unzip
Pour compresser nomfichier en fichier.zip :
zip fichier.zip nomfichier
On peut aussi faire du récursif sur un répertoire :
zip fichier.zip -r /chemin/repertoire
Enfin pour décompresser un fichier ZIP sur Linux :
unzip fichier.zip
unrar-free : Décompresser des fichiers RAR
Il est aussi possible de décompresser des fichiers RAR en ligne de commandes sur Linux.
Cependant, il n’est pas possible de compresser en RAR étant donné qu’il s’agit d’un algorithme propriétaire.
Tout d’abord, on installe unrar-free avec apt-get :
apt-get install unrar-free
Puis voici comment décompresser un fichier rar sur Linux :
unrar -x fichier.rar
Par exemple pour décompresser l’archive minecraft-mod.rar :
unrar -x minecraft-mod.rar