Sur Linux, архивировать и сжимать данные — повседневная задача. Trois outils couvrent ce besoin : tar pour assembler des fichiers, gzip pour une compression rapide, et bzip2 pour une meilleure compression. Maîtrise-les et tu pourras sauvegarder, partager et optimiser l'espace disque efficacement.
tar ne compresse rien — il empile plusieurs fichiers et dossiers en un seul fichier appelé archive. Par convention, une archive tar a l'extension .tar.
# Archiver un dossier entier
tar -cvf mon-archive.tar /chemin/vers/dossier
# Archiver plusieurs fichiers
tar -cvf mes-fichiers.tar fichier1.txt fichier2.txt image.png
# Explication des flags :
# -c : créer (create)
# -v : mode verbeux (affiche les fichiers)
# -f : utiliser ce nom de fichiertar -tvf mon-archive.tar
# Affiche les fichiers avec leurs permissions, taille et date# Extraire dans le répertoire courant
tar -xvf mon-archive.tar
# Extraire dans un répertoire spécifique
tar -xvf mon-archive.tar -C /destination/
# -x : extraire (extract)
# -C : changer de répertoiregzip compresse un fichier pour réduire sa taille. Le fichier original est remplacé par un fichier .gz. La compression est rapide mais moins efficace que bzip2.
# Compresser un fichier
gzip mon-fichier.txt
# → crée mon-fichier.txt.gz et supprime l'original
# Compression maximale (niveau 9)
gzip -9 gros-fichier.bin
# Compression minimale (plus rapide)
gzip -1 fichier.txt
# Conserver le fichier original
gzip -c mon-fichier.txt > mon-fichier.txt.gz# Décompresser un fichier .gz
gunzip mon-fichier.txt.gz
# Équivalent à :
gzip -d mon-fichier.txt.gzgzip -t fichier-compresse.gz
# Si rien ne s'affiche, le fichier est intactbzip2 compresse mieux que gzip mais prend plus de temps. Idéal pour les fichiers volumineux où chaque mégabyte compte.
# Compresser un fichier
bzip2 mon-fichier.txt
# → crée mon-fichier.txt.bz2
# Mode fastest (moins compressé)
bzip2 -1 fichier.txt
# Mode best (compression maximale)
bzip2 -9 fichier.txt# Décompresser
bunzip2 mon-fichier.txt.bz2
# Équivalent à :
bzip2 -d mon-fichier.txt.bz2La vraie puissance vient de la combinaison. Tu peux créer une archive tar compressée en une seule commande.
# Créer une archive compressée gzip
tar -cvzf archive.tar.gz /dossier/a/sauvegarder
# Extraire une archive tar.gz
tar -xvzf archive.tar.gz
# -z : utiliser gzip pour la compression# Créer une archive compressée bzip2
tar -cvjf archive.tar.bz2 /dossier/a/sauvegarder
# Extraire une archive tar.bz2
tar -xvjf archive.tar.bz2
# -j : utiliser bzip2 pour la compression# xz offre la meilleure compression mais est plus lent
tar -cvJf archive.tar.xz /dossier/a/sauvegarder
tar -xvJf archive.tar.xz
# -J : utiliser xz| Méthode | Extension | Compression | Vitesse | Usage |
|---|---|---|---|---|
| tar seul | .tar | Aucune | Très rapide | Assembler sans comprimer |
| tar + gzip | .tar.gz / .tgz | Bonne | Rapide | Usage courant |
| tar + bzip2 | .tar.bz2 / .tbz2 | Très bonne | Moyenne | Fichiers volumineux |
| tar + xz | .tar.xz / .txz | Excellente | Lente | Archives à longue conservation |
# Sauvegarde compressée du home
tar -cvzf backup-home-$(date +%Y%m%d).tar.gz /home/utilisateur
# La date est automatiquement ajoutée au nom du fichier# Exclure un dossier (cache, node_modules, etc.)
tar --exclude='*/node_modules' \
--exclude='*/.cache' \
-cvzf projet.tar.gz /chemin/vers/projet
# Exclure par extension
tar --exclude='*.log' --exclude='*.tmp' -cvzf data.tar.gz /data# Voir la taille d'un dossier avant archivage
du -sh /dossier/a/archiver
# Lister sans extraire
tar -tzf archive.tar.gz | head -20
# Affiche les 20 premiers fichiers de l'archive# Lister les différences avec une archive existante
tar -diff -f archive.tar.gz -F '%Y-%m-%d %H:%M:%S'
# Ajouter des fichiers à une archive NON compressée
tar -rvf archive.tar nouveau-fichier.txt
# (ne fonctionne pas avec .tar.gz)# Créer un fichier zip
zip -r mon-fichier.zip /dossier/
# Décompresser
unzip mon-fichier.zip
# Zip est utile pour partager avec des utilisateurs Windows# Créer une archive 7z (nécessite p7zip)
7z a archive.7z /dossier/
# Extraire
7z x archive.7z
# Bon rapport compression/vitesse# Détecter automatiquement le format
file archive.tar.gz
# archive.tar.gz: gzip compressed data
# Avec un outil comme atool :
atool -x archive.tar.gz
# atool détecte automatiquement le format| Commande | Description |
|---|---|
tar -cvf archive.tar /dossier | Créer une archive tar |
tar -xvf archive.tar | Extraire une archive tar |
tar -tvf archive.tar | Lister le contenu d'une archive |
gzip fichier | Compresser avec gzip |
gunzip fichier.gz | Décompresser un .gz |
bzip2 fichier | Compresser avec bzip2 |
bunzip2 fichier.bz2 | Décompresser un .bz2 |
tar -cvzf arc.tar.gz /dossier | Archive compressée gzip |
tar -cvjf arc.tar.bz2 /dossier | Archive compressée bzip2 |
tar --exclude='*/cache' ... | Exclure des dossiers de l'archive |
zip -r fichier.zip /dossier | Créer un fichier zip |
Ces outils forment le socle de toute gestion de fichiers compressés sur Linux. Pratique chaque format jusqu'à connaître instinctively lequel utiliser selon le contexte — sauvegarde rapide, partage multiplateforme, ou archivage à long terme.