Skip to content

Compression et archivage

Linux propose plusieurs outils de compression et d'archivage. tar crée des archives (sans compression seul), combiné avec gzip ou bzip2 il compresse aussi.

gzip est plus rapide, bzip2 compresse mieux.

gzip

gzip fichier.txt          # Compresse → fichier.txt.gz (supprime l'original)
gzip -k fichier.txt       # Compresse en gardant l'original (-k = keep)
gzip -d fichier.txt.gz    # Décompresse
gunzip fichier.txt.gz     # Équivalent à gzip -d
gzip -l fichier.txt.gz    # Affiche le taux de compression
gzip -9 fichier.txt       # Compression maximale (1=rapide, 9=max)

Fichier original

Par défaut gzip supprime le fichier source après compression. Utilise -k pour le conserver.

bzip2

bzip2 fichier.txt         # Compresse → fichier.txt.bz2 (supprime l'original)
bzip2 -k fichier.txt      # Compresse en gardant l'original
bzip2 -d fichier.txt.bz2  # Décompresse
bunzip2 fichier.txt.bz2   # Équivalent à bzip2 -d
bzip2 -v fichier.txt      # Mode verbeux (affiche le taux de compression)

gzip vs bzip2

bzip2 produit des fichiers ~15% plus petits que gzip mais est significativement plus lent. Pour des backups volumineux, bzip2 est préférable.

tar

tar seul archive sans compresser (regroupe plusieurs fichiers/dossiers en un seul .tar).

Options principales

Option Description
-c Créer une archive
-x Extraire une archive
-t Lister le contenu sans extraire
-f Spécifier le nom du fichier archive
-v Mode verbeux (affiche les fichiers traités)
-z Compression gzip (.tar.gz)
-j Compression bzip2 (.tar.bz2)
-C Extraire vers un dossier cible

Créer une archive

# Archive simple (sans compression)
tar -cvf archive.tar /dossier/

# Archive compressée avec gzip
tar -czvf archive.tar.gz /dossier/

# Archive compressée avec bzip2
tar -cjvf archive.tar.bz2 /dossier/

# Archiver plusieurs éléments
tar -czvf backup.tar.gz /etc /home /var/log

Extraire une archive

# Extraire dans le dossier courant
tar -xzvf archive.tar.gz

# Extraire vers un dossier spécifique
tar -xzvf archive.tar.gz -C /tmp/restauration/

# Extraire une archive bzip2
tar -xjvf archive.tar.bz2 -C /tmp/restauration/

Lister le contenu sans extraire

tar -tzvf archive.tar.gz
tar -tjvf archive.tar.bz2

Cas pratiques

Backup du /etc avec date
tar -czvf backup-etc-$(date +%Y%m%d).tar.gz /etc/
# → backup-etc-20260307.tar.gz
Extraire un seul fichier depuis une archive
tar -xzvf archive.tar.gz etc/hosts
Voir la taille d'une archive
ls -lh archive.tar.gz