Commande tar Linux : guide complet
DOG&DEV · 26/01/2025
Commande tar Linux : guide complet
tar (Tape Archive) est une commande Linux essentielle pour créer, extraire et gérer des archives. Combiné avec des outils de compression (gzip, bzip2, xz), tar est l'outil standard pour les sauvegardes et le transfert de fichiers. Ce guide couvre toutes les utilisations courantes.
Prérequis
- Linux (Debian, Ubuntu, CentOS, etc.)
- Accès terminal
- Connaissances de base en ligne de commande
Qu'est-ce que tar ?
tar combine plusieurs fichiers en une archive unique (fichier .tar). Il peut aussi compresser l'archive avec gzip (.tar.gz), bzip2 (.tar.bz2) ou xz (.tar.xz).
Différence avec zip :
- tar : combine d'abord, compresse ensuite (meilleure compression)
- zip : compresse chaque fichier individuellement
Syntaxe de base
tar [options] [archive] [fichiers/dossiers]
Options essentielles
Créer une archive
-c : créer (create)
-f : spécifier le nom du fichier
-v : mode verbeux (afficher les fichiers)
Exemple :
tar -cvf archive.tar /chemin/dossier
Extraire une archive
-x : extraire (extract)
-f : spécifier le nom du fichier
-v : mode verbeux
Exemple :
tar -xvf archive.tar
Lister le contenu
-t : lister (list)
-f : spécifier le nom du fichier
-v : mode verbeux
Exemple :
tar -tvf archive.tar
Compression
gzip (.tar.gz ou .tgz)
Créer :
tar -czvf archive.tar.gz /chemin/dossier
Extraire :
tar -xzvf archive.tar.gz
Lister :
tar -tzvf archive.tar.gz
bzip2 (.tar.bz2)
Créer :
tar -cjvf archive.tar.bz2 /chemin/dossier
Extraire :
tar -xjvf archive.tar.bz2
Lister :
tar -tjvf archive.tar.bz2
xz (.tar.xz)
Créer :
tar -cJvf archive.tar.xz /chemin/dossier
Extraire :
tar -xJvf archive.tar.xz
Lister :
tar -tJvf archive.tar.xz
Options avancées
Exclure des fichiers
--exclude : exclure des fichiers/dossiers
tar -czvf backup.tar.gz /home \
--exclude=/home/user/tmp \
--exclude='*.log'
Extraire dans un dossier spécifique
-C : changer de répertoire avant extraction
tar -xzvf archive.tar.gz -C /destination
Conserver les permissions
-p : conserver les permissions (par défaut pour root)
tar -czpvf backup.tar.gz /etc
Afficher la progression
--checkpoint : afficher la progression
tar -czvf backup.tar.gz /large/directory --checkpoint=.1000
Exemples pratiques
Sauvegarde complète
Sauvegarder un site web :
tar -czvf website-backup-$(date +%Y%m%d).tar.gz /var/www/html
Sauvegarder avec exclusion :
tar -czvf backup.tar.gz /var/www \
--exclude=/var/www/cache \
--exclude=/var/www/tmp \
--exclude='*.log'
Restauration
Extraire une sauvegarde :
tar -xzvf website-backup-20250126.tar.gz -C /var/www/html
Transfert via SSH
Créer et transférer :
tar -czf - /local/directory | ssh user@remote "cat > backup.tar.gz"
Extraire depuis SSH :
ssh user@remote "tar -czf - /remote/directory" | tar -xzvf - -C /local
Archive incrémentielle
Créer une archive avec timestamp :
tar -czvf backup-$(date +%Y%m%d-%H%M%S).tar.gz /data
Comparaison des formats
| Format | Extension | Compression | Vitesse | Usage |
|---|---|---|---|---|
| tar | .tar | Aucune | Rapide | Archives non compressées |
| gzip | .tar.gz | Bonne | Rapide | Standard, très utilisé |
| bzip2 | .tar.bz2 | Meilleure | Plus lent | Meilleure compression |
| xz | .tar.xz | Excellente | Très lent | Maximum compression |
Recommandation : .tar.gz pour la plupart des cas (bon compromis vitesse/compression).
Dépannage
| Problème | Cause possible | Solution |
|---|---|---|
| "Cannot open: No such file" | Fichier inexistant | Vérifier le chemin |
| "Permission denied" | Droits insuffisants | Utiliser sudo ou corriger les permissions |
| Archive corrompue | Transfert interrompu | Refaire la sauvegarde |
| Espace disque insuffisant | Disque plein | Libérer de l'espace ; utiliser compression |
Bonnes pratiques
- Nommer les archives : inclure la date (
backup-20250126.tar.gz) - Tester les sauvegardes : extraire pour vérifier
- Compression : utiliser gzip pour un bon compromis
- Exclusions : exclure cache, tmp, logs des sauvegardes
- Vérification : utiliser
tar -tzvfavant extraction importante
Astuces
Raccourcis courants
Créer : tar -czf (sans -v pour moins de verbosité)
Extraire : tar -xzf
Lister : tar -tzf
Combinaison avec find
Archiver tous les fichiers modifiés aujourd'hui :
find /data -mtime -1 -print0 | tar -czvf backup.tar.gz --null -T -
Vérifier l'intégrité
Test d'extraction sans extraire :
tar -tzf archive.tar.gz > /dev/null && echo "Archive OK" || echo "Archive corrompue"
Ressources
- ssh-linux - Transfert via SSH
- use-ssh-linux - Utilisation SSH avancée
Cet article s'inscrit dans notre série de guides Linux et administration système. Pour un serveur sur-mesure, contact.