← Sommaire SkyLinux

61 - tar, gzip et bzip2 — Archiver et compresser

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.

1. tar — assembler sans comprimer

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.

Créer une archive

# 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 fichier

Lister le contenu d'une archive

tar -tvf mon-archive.tar # Affiche les fichiers avec leurs permissions, taille et date

Extraire une archive

# 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épertoire

2. gzip — compression rapide

gzip 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 avec gzip

# 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 avec gunzip

# Décompresser un fichier .gz gunzip mon-fichier.txt.gz # Équivalent à : gzip -d mon-fichier.txt.gz

Tester l'intégrité d'un fichier gzip

gzip -t fichier-compresse.gz # Si rien ne s'affiche, le fichier est intact

3. bzip2 — meilleure compression

bzip2 compresse mieux que gzip mais prend plus de temps. Idéal pour les fichiers volumineux où chaque mégabyte compte.

Compresser avec bzip2

# 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 avec bunzip2

# Décompresser bunzip2 mon-fichier.txt.bz2 # Équivalent à : bzip2 -d mon-fichier.txt.bz2

4. Combiner tar + compression

La vraie puissance vient de la combinaison. Tu peux créer une archive tar compressée en une seule commande.

Archive tar.gz (gzip)

# 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

Archive tar.bz2 (bzip2)

# 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

Archive tar.xz (compression maximale)

# 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

5. Comparaison des méthodes

MéthodeExtensionCompressionVitesseUsage
tar seul.tarAucuneTrès rapideAssembler sans comprimer
tar + gzip.tar.gz / .tgzBonneRapideUsage courant
tar + bzip2.tar.bz2 / .tbz2Très bonneMoyenneFichiers volumineux
tar + xz.tar.xz / .txzExcellenteLenteArchives à longue conservation

6. Cas pratiques

Sauvegarder un répertoire personnel

# 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 des fichiers ou dossiers

# 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

Vérifier l'espace avant compression

# 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

Mettre à jour une archive incrémentielle

# 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)

7. Formats de compression alternatifs

zip — compatible Windows

# 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

7z — taux de compression élevé

# Créer une archive 7z (nécessite p7zip) 7z a archive.7z /dossier/ # Extraire 7z x archive.7z # Bon rapport compression/vitesse

8. Décompresser sans connaître le format

# 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

Résumé

CommandeDescription
tar -cvf archive.tar /dossierCréer une archive tar
tar -xvf archive.tarExtraire une archive tar
tar -tvf archive.tarLister le contenu d'une archive
gzip fichierCompresser avec gzip
gunzip fichier.gzDécompresser un .gz
bzip2 fichierCompresser avec bzip2
bunzip2 fichier.bz2Décompresser un .bz2
tar -cvzf arc.tar.gz /dossierArchive compressée gzip
tar -cvjf arc.tar.bz2 /dossierArchive compressée bzip2
tar --exclude='*/cache' ...Exclure des dossiers de l'archive
zip -r fichier.zip /dossierCré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.