C'est quoi, tar ?
tar (tape archive) crée des archives de fichiers. Combiné avec gzip (-z), il produit les fameux fichiers .tar.gz ou .tgz — le format d'archive universel de Linux.
💡 L'analogie : tar, c'est comme mettre des fichiers dans une boîte et la sceller. Avec -z, c'est comme compresser la boîte sous vide avant de l'envoyer.
# CRÉER une archive .tar.gz
$ tar -czf archive.tar.gz dossier/
# EXTRAIRE une archive
$ tar -xzf archive.tar.gz
# LISTER le contenu sans extraire
$ tar -tzf archive.tar.gz
Les flags décryptés
| Flag | Mnémotechnique | Ce que ça fait |
|---|---|---|
| -c | Créer | Crée une nouvelle archive |
| -x | eXtraire | Extrait le contenu d'une archive |
| -t | lisTer | Liste le contenu sans extraire |
| -z | gZip | Compresse/décompresse avec gzip |
| -j | bzip2 | Compresse avec bzip2 (plus lent, plus petit) |
| -f | Fichier | Spécifie le nom du fichier archive |
| -v | Verbose | Affiche les fichiers traités |
| -C | Change dir | Extrait dans un dossier spécifique |
Exemples pratiques
# Archiver et exclure node_modules
$ tar -czf projet.tar.gz --exclude='node_modules' projet/
# Extraire dans un dossier spécifique
$ tar -xzf archive.tar.gz -C /tmp/
# Extraire un seul fichier de l'archive
$ tar -xzf archive.tar.gz projet/config.json
# Voir la progression (avec pv si installé)
$ tar -czf - gros-dossier/ | pv > archive.tar.gz
# Sauvegarde avec date dans le nom
$ tar -czf backup-$(date +%Y%m%d).tar.gz ~/documents/
💡 Astuce mnémotechnique
créer =
czf | extraire = xzf | lister = tzf. Le z est toujours là pour gzip. Le f toujours en dernier.