tar : Gestion des archives sous Linux
Table des matières
La commande tar est une vielle commande UNIX (qui est donc disponible sous Linux) dont le nom veut dire "Tape ARchiver". Par défaut, cette commande va chercher à faire des acrions sur des lecteurs de bande.
Aujoud'hui, sur nos serveurs et nos systèmes bureautique, on va surtout maniipuler des fichiers .tar.
Sous Linux, on va pouvoir manipuler des archives (non compressées) qui ont l'extension .tar ou des archives compressées qui ont une double extension, comme .tar.gz (archive .tar compressée avec gzip .gz par exemple)
La commande tar va être utilisée de cette façon :
On utilisera très souvent l'option -f pour signaler que les données à extraire ou à archiver sont à traiter dans un fichier.
Comme dit en introduction, tar va opérer par défaut sur des lecteurs de bande.
Autant la commande tar historique POSIX ne gère pas la compression. Mais la version GNU de tar est capable d'appeler un logiciel de compression/décompression et donc traiter.
Dans les versions modernes de GNU tar, la détection de l'outil de décompression est faite sur l'extension du nom de fichier. Evidemment, les outils concernés doivent être disponlbles.
Contrairement à la décompression et au tests, la compression demandera d'expliciter l'algorithme via les options :
-z : gzip
-j : bzip2
-J : xz
Pour créer une archive tar, on utilisera l'option -c (pour Create) :
Le nom des fichiers est indiqué APRÈS le nom de l'archive. Des jockers sont utilisables.
L'option -v est utilisable aussi et va afficher sur la sortie standard (la console) les fichiers traités.
Poour compresser avec gzip, on ajoutera l'option -z :
Si on traite un dossier complet, on a la possibilité d'exclure des fichiers via des motifs :
Pour lister le contenu d'une archive tar, on utilisera l'option -t (pour Tester) :
L'option -v va permettre d'afficher plus de détails comme les permissions notamment.
Pour extraire une archive tar, on utilisera l'option -x (pour eXtract) :
L'option -v est utilisable aussi et va afficher sur la sortie standard (la console) les fichiers traités.
On pourra utiliser l'option -C pour extraire l'archive dans un autre répertoire :
Lors de l'extraction, on pourra n'extraire que certains éléments de l'archive. On les spécifie en fin de commande :
Le format zstd est en phase montante. Cependant, tar ne dispose pas d'option pour compresser en zstd.
Si on veut spécifier un outil spécifique pour la compression, on utilisera l'option -I (i majuscule) :
Comme pour gzip, bzip2 et xz, la décompression peut se faire sans option particulière dans le cas de GNU tar.
Si on a une archive existante, on pourra rajouter des fichiers dedans avec l'option -r :
Le nom des fichiers est indiqué APRÈS le nom de l'archive. Des jockers sont utilisables.
L'option -v est utilisable aussi et va afficher sur la sortie standard (la console) les fichiers traités.
Introduction
La commande tar est une vielle commande UNIX (qui est donc disponible sous Linux) dont le nom veut dire "Tape ARchiver". Par défaut, cette commande va chercher à faire des acrions sur des lecteurs de bande.
Aujoud'hui, sur nos serveurs et nos systèmes bureautique, on va surtout maniipuler des fichiers .tar.
Sous Linux, on va pouvoir manipuler des archives (non compressées) qui ont l'extension .tar ou des archives compressées qui ont une double extension, comme .tar.gz (archive .tar compressée avec gzip .gz par exemple)
Syntaxe
La commande tar va être utilisée de cette façon :
Code BASH :
tar [options] [nom_de_l_archive] [fichiers_ou_repertoires]
On utilisera très souvent l'option -f pour signaler que les données à extraire ou à archiver sont à traiter dans un fichier.
Comme dit en introduction, tar va opérer par défaut sur des lecteurs de bande.
A propos des archives TAR compressées
Autant la commande tar historique POSIX ne gère pas la compression. Mais la version GNU de tar est capable d'appeler un logiciel de compression/décompression et donc traiter.
Dans les versions modernes de GNU tar, la détection de l'outil de décompression est faite sur l'extension du nom de fichier. Evidemment, les outils concernés doivent être disponlbles.
Contrairement à la décompression et au tests, la compression demandera d'expliciter l'algorithme via les options :
-z : gzip
-j : bzip2
-J : xz
Manipuler des archives TAR
Créer une archive
Pour créer une archive tar, on utilisera l'option -c (pour Create) :
Code BASH :
tar -cf archive.tar fichier1 fichier2 dossier1 *.txt
Le nom des fichiers est indiqué APRÈS le nom de l'archive. Des jockers sont utilisables.
L'option -v est utilisable aussi et va afficher sur la sortie standard (la console) les fichiers traités.
Poour compresser avec gzip, on ajoutera l'option -z :
Code BASH :
tar -czf archive.tar.gz fichier1 fichier2
Si on traite un dossier complet, on a la possibilité d'exclure des fichiers via des motifs :
Code BASH :
tar -cvf archive.tar undossier --exclude="*.log"
Lister le contenu d'une archive
Pour lister le contenu d'une archive tar, on utilisera l'option -t (pour Tester) :
Code BASH :
tar -xvf archive.tar
L'option -v va permettre d'afficher plus de détails comme les permissions notamment.
Extraire des archives
Pour extraire une archive tar, on utilisera l'option -x (pour eXtract) :
Code BASH :
tar -xf archive.tar
L'option -v est utilisable aussi et va afficher sur la sortie standard (la console) les fichiers traités.
On pourra utiliser l'option -C pour extraire l'archive dans un autre répertoire :
Code BASH :
tar -xf archive.tar -C /tmp/undossier
Lors de l'extraction, on pourra n'extraire que certains éléments de l'archive. On les spécifie en fin de commande :
Code BASH :
tar -xf archive.tar fichier1
Usages avancés de tar
Utiliser un outil de compression spécifique
Le format zstd est en phase montante. Cependant, tar ne dispose pas d'option pour compresser en zstd.
Si on veut spécifier un outil spécifique pour la compression, on utilisera l'option -I (i majuscule) :
Code BASH :
tar -cf archive.tar.zstd -I zstd fic1 fic2
Comme pour gzip, bzip2 et xz, la décompression peut se faire sans option particulière dans le cas de GNU tar.
Ajouter des fichiers à une archive
Si on a une archive existante, on pourra rajouter des fichiers dedans avec l'option -r :
Code BASH :
tar -rf archive.tar nouveau_fichier.txt
Le nom des fichiers est indiqué APRÈS le nom de l'archive. Des jockers sont utilisables.
L'option -v est utilisable aussi et va afficher sur la sortie standard (la console) les fichiers traités.