Qu'est-ce que tar ?
tar est l'abréviation de 'Tape Archive' (archive sur bande), et a été initialement créé pour sauvegarder des données sur des bandes magnétiques. Aujourd'hui, c'est un outil standard de Linux utilisé pour regrouper plusieurs fichiers et répertoires en un seul fichier, facilitant ainsi leur gestion ou leur transfert. tar lui-même ne fait que regrouper les fichiers ; la compression est spécifiée via des options distinctes (-z, -j, -J).
Modes de fonctionnement clés
tar fonctionne avec un mode principal à la fois (création, extraction, liste).
- -c (Create): Crée un nouveau fichier archive.
- -x (Extract): Extrait les fichiers d'une archive.
- -t (List): Affiche le contenu (liste) d'un fichier archive sans le décompresser.
- -f (File): Spécifie le 'fichier' archive cible. Indispensable pour presque toutes les opérations.
Options principales (Shell)
tar est utilisé en combinant des options. Le plus important est de choisir l'une des options `-c`, `-x`, ou `-t`.
1. Modes de fonctionnement (choisir un)
2. Spécification du fichier et de la compression
3. Cible et fonctionnalités supplémentaires
Commande générée :
Essayez de combiner les commandes.
Description:
`tar` Exécute la commande.
Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.
Exemples de scénarios d'utilisation (Shell)
Voici les exemples de combinaisons les plus fréquemment utilisées. (Le tiret `-` devant les options peut être omis, mais il est préférable de le spécifier.)
Créer une archive compressée avec gzip (.tar.gz)
tar -cvzf backup.tar.gz /home/user/data
c (créer), v (verbeux), z (gzip), f (fichier) + [fichier_résultat] + [cible]
Extraire une archive compressée avec gzip (.tar.gz)
tar -xvzf backup.tar.gz
x (extraire), v (verbeux), z (gzip), f (fichier) + [fichier_cible]
Lister le contenu d'un fichier compressé (.tar.gz)
tar -tvf backup.tar.gz
t (lister), v (verbeux), f (fichier) (tar récent détecte -z automatiquement)
Extraire l'archive vers un répertoire spécifié
tar -xvzf backup.tar.gz -C /opt/restore
Spécifiez le chemin avec l'option -C.
Créer une archive compressée avec bzip2 (.tar.bz2)
tar -cvjf archive.tar.bz2 ./docs
Utilisez l'option j (bzip2) au lieu de z.
Extraire une archive compressée avec bzip2 (.tar.bz2)
tar -xvjf archive.tar.bz2
Compresser en excluant des fichiers/répertoires spécifiques
tar -cvzf app.tar.gz ./app --exclude="*.log" --exclude="node_modules"
Utilisez l'option --exclude. (Peut être utilisée plusieurs fois)
Installation
tar est préinstallé sur presque toutes les distributions Linux (et macOS). (Généralement GNU tar). Si pour une raison quelconque une installation est nécessaire, il peut être installé avec le nom de paquet 'tar'.
Installé par défaut
Une installation séparée est rarement nécessaire. Vérifiez la version en tapant `tar --version`.
Debian/Ubuntu (si nécessaire)
sudo apt update && sudo apt install -y tar
RHEL/CentOS/Fedora (si nécessaire)
sudo dnf install -y tar
Astuces et précautions
Astuces utiles
- Omission du tiret (-): Selon une ancienne convention, le tiret du premier groupe d'options peut être omis, comme dans `tar cvf ...` (ex: `tar cvf` = `tar -cvf`). Cependant, il est recommandé d'inclure le tiret pour plus de clarté.
- Détection automatique de la compression: Les versions récentes de `tar` détectent automatiquement la compression en fonction de l'extension du fichier lors de l'extraction (-x), même sans les options `-z`, `-j`, `-J`. (Ex: `tar -xf archive.tar.gz` suffit.)
- Conservation des permissions (-p): Lors de la restauration après une sauvegarde système, il est crucial d'utiliser l'option `-p` pour conserver les permissions et la propriété des fichiers.
- Problème de chemin (-C): Si vous souhaitez extraire des fichiers dans un autre emplacement que le répertoire actuel, l'utilisation de l'option `-C /chemin` est beaucoup plus efficace que de déplacer les fichiers après coup.
- Attention aux chemins absolus: Si vous archivez des fichiers avec un chemin absolu comme `/home/user` lors de la création (-c), ils seront extraits au même chemin absolu lors de l'extraction (-x). (Les versions récentes de tar peuvent supprimer le `/` initial pour des raisons de sécurité.) Il est généralement plus sûr d'archiver avec des chemins relatifs, par exemple `cd /home && tar -cvf user.tar ./user`.