Tar est un outil de ligne de commande utilisé pour créer et manipuler des fichiers d'archive dans les systèmes Linux et Unix. La commande Tar crée un fichier d'archive .tar, puis le comprime à l'aide de gzip ou bzip2.
Vous pouvez créer un seul fichier compressé archivé à l'aide d'une seule commande pour obtenir le fichier .tar.gz ou les fichiers .tar.bz2. La commande Tar peut également être utilisée pour extraire des fichiers archivés.
Voyons la commande tar en action à travers quelques exemples pratiques.
1) Créer un fichier d'archive .tar
Pour créer un fichier tar non compressé (.tar), utilisez l'option -c avec la commande tar comme suit :
$ tar -cvf /path/to/foo.tar /path/to/foo/
Où '/chemin/vers/foo.tar' est l'emplacement du fichier tar résultant et '/path/to/foo' est l'emplacement du fichier ou du répertoire à utiliser comme entrée.
Exemple
$ tar -cvf powerlog.tar powerlog
a powerlog
$ ls
powerlog powerlog.tar
Vous pouvez utiliser un chemin absolu au lieu d'un chemin relatif, comme indiqué dans l'exemple.
2) Créer une archive .gz avec tar
La syntaxe de commande pour créer un .gz
archive avec tar est :
$ tar -czvf /path/to/foo.tgz /path/to/foo/
Où '/path/to/foo.tgz' est le fichier compressé de destination et '/path/to/foo /' est le répertoire source ou le fichier à compresser.
3) Créer une archive .bz2
L'option -j
est utilisé pour travailler avec des archives .bz2.
$ tar -cjvf /path/to/foo.tgz /path/to/foo/
4) Créer une archive .gz et exclure
Nous utilisons --exclude
tar pour exclure une extension spécifique ou une liste d'extensions de fichiers. La syntaxe est similaire à ci-dessous :
$ tar -czvf /path/to/foo.tgz --exclude=\*.{jpg,gif,png,wmv,flv,tar.gz,zip} /path/to/foo/.
5) Utiliser tar sans chemin absolu lors de la compression
Lorsque vous utilisez tar pour compresser des fichiers et que vous fournissez un chemin absolu, un fichier compressé aura un chemin complet dans ses métadonnées. Ainsi, lorsque vous extrayez le contenu, il se trouvera dans des répertoires similaires au chemin absolu qui a été transmis. Pour éviter cela, ajoutez un . à la fin de la commande.
$ tar -zcvf /path/to/foo.tgz -C/path/to/foo .
6) Tarez tous les fichiers commençant par une lettre spécifique
Créez une archive tar de tout ce qui se trouve dans le répertoire courant en commençant par un "i".
# tar -cvf fullbackup.tar i*
install.log
install.log.syslog
7) Ajouter un nouveau fichier à l'archive tar existante
Ajoutez un fichier ou ajoutez un nouveau fichier à l'archive tar existante.
# tar --append --file=backup.tar anaconda-ks.cfg
La commande ci-dessus ajoutera un fichier anaconda-ks.cfg dans l'archive backup.tar
8) Ajout de deux fichiers d'archive avec l'option de concaténation
# tar --concatenate --file=backup.tar fullbackup.tar
La commande ci-dessus ajoute le contenu de fullbackup.tar à l'archive backup.tar.
9) Extraire le fichier d'archive .tar
Pour extraire une archive non compressée qui a souvent une extension .tar
, la syntaxe de la commande est :
$ tar -xvf /path/to/foo.tar
Où /path/to/foo.tar est le chemin absolu/relatif vers l'emplacement d'un fichier tar. Par exemple
$ tar -xvf powerlog.tar
x powerlog/
10) Extraire une archive .gz
Pour extraire un .gz
archive, nous utilisons la syntaxe de commande :
$ tar -xzvf /path/to/foo.tgz
Où '/path/to/foo.tgz' est le chemin absolu ou relatif vers le fichier compressé.
11) Extraire une archive .bz2
La syntaxe de la commande pour extraire un .bz2
l'archive est
$ tar -xjvf /path/to/foo.bz2
Notez que vous pouvez passer un fichier .tgz tant qu'il a été compressé avec un -j
option. Tar détectera automatiquement le format et le décompressera.
12) Extraire un .tar dans le répertoire spécifié
Pour extraire une archive tar dans un répertoire spécifique, utilisez -C
option pour fournir le répertoire de destination.
$ tar -xvf /path/to/foo.tar -C /path/to/destination/
13) Extraire le fichier de l'archive tar
La commande suivante extrait le fichier 'anaconda-ks.cfg' dans l'archive 'backup.tar'.
# tar --extract -vv --occurrence --file=./backup.tar anaconda-ks.cfg
-rw-r--r-- root/root 766 2008-04-12 06:52:42 anaconda-ks.cfg
14) Lister le contenu de l'archive .gz
Supposons que vous souhaitiez uniquement afficher le contenu d'un .tgz
fichier sans les extraire, vous utiliserez la syntaxe de commande :
$ tar -ztvf /path/to/foo.tgz
Remplacez simplement '/path/to/foo.tgz' par le chemin correct de votre .tgz fichier
15) Lister le contenu du fichier d'archive .bz2
Si vous souhaitez simplement afficher le contenu de .bz2
archiver sans extraire, utilisez la commande :
$ tar -jtvf /path/to/foo.tgz
16) Préserver les liens symboliques à l'aide de la commande tar
Utilisez tar -cvhf
pour conserver mes liens symboliques lors de la génération d'une archive tar (Utilisez l'option "h" pour cela).
Conclusion
Il est difficile de se souvenir de toutes les options de la commande tar. Vous trouverez ci-dessous une liste des options tar couramment utilisées.
- j
:Utilisé pour filtrer l'archive via bzip2.
- v
:Exécutez la commande en mode détaillé pour afficher la progression du fichier d'archive.
- f
:Spécifiez le nom du fichier d'archive.
- W
:Utilisé pour vérifier un fichier d'archive.
- z
:filtrer une archive via l'outil gzip.
- t
:Ceci est utilisé pour afficher le contenu du fichier d'archive.
-c
:Crée une nouvelle archive contenant les éléments spécifiés.
-r
:Utilisé pour ajouter ou mettre à jour une archive existante avec des fichiers ou des répertoires
-t
:Liste le contenu d'une archive sur stdout.
-u
:Comme -r, mais les nouvelles entrées ne sont ajoutées que si elles ont une date de modification plus récente que l'entrée correspondante dans l'archive.
-x
:Extrayez le fichier d'archive sur le disque.
Pour toutes les opérations tar, l'utilitaire se termine avec un 0
en cas de succès, et >0
si une erreur se produit. Il est important de comprendre cela si vous utilisez tar avec un script.
J'espère que vous avez apprécié la lecture de ce tutoriel sur la commande tar. Veuillez laisser vos suggestions dans la section des commentaires ci-dessous.
Lire aussi :
- Comment conserver les liens symboliques dans la commande Tar