Sur la plate-forme Unix, commande tar est le principal utilitaire d'archivage. Comprendre les différentes options de commande tar vous aidera à maîtriser la manipulation des fichiers d'archive.
Dans cet article, passons en revue divers exemples de tar y compris comment créer des archives tar (avec compression gzip et bzip), extraire un seul fichier ou répertoire, afficher le contenu de l'archive tar, valider l'intégrité des archives tar, découvrir la différence entre l'archive tar et le système de fichiers, estimer la taille du tar archive avant de le créer, etc.,
1. Création d'une archive à l'aide de la commande tar
Création d'une archive tar non compressée à l'aide de l'option cvf
C'est la commande de base pour créer une archive tar.
$ tar cvf archive_name.tar dirname/
Dans la commande ci-dessus :
- c – créer une nouvelle archive
- v – liste détaillée des fichiers qui sont traités.
- f – voici le nom du fichier d'archive
Création d'une archive tar gzippée à l'aide de l'option cvzf
L'option tar cvf ci-dessus ne fournit aucune compression. Pour utiliser une compression gzip sur l'archive tar, utilisez l'option z comme indiqué ci-dessous.
$ tar cvzf archive_name.tar.gz dirname/
- z - filtrer l'archive via gzip
Remarque : .tgz est identique à .tar.gz
Remarque : J'aime garder l'option 'cvf' (ou tvf, ou xvf) inchangée pour toute création d'archive (ou vue, ou extraction) et ajouter une option supplémentaire à la fin, ce qui est plus facile à retenir. c'est-à-dire cvf pour la création d'archives, cvfz pour la création d'archives gzip compressées, cvfj pour la création d'archives bzip2 compressées, etc. Pour que cette méthode fonctionne correctement, ne donnez pas - devant les options.
Création d'une archive tar bzippée à l'aide de l'option cvjf
Créez une archive tar bzip2 comme indiqué ci-dessous :
$ tar cvfj archive_name.tar.bz2 dirname/
- j - filtrer l'archive via bzip2
gzip contre bzip2 :bzip2 prend plus de temps à compresser et décompresser que gzip. La taille d'archivage bzip2 est inférieure à gzip.
Remarque : .tbz et .tb2 sont identiques à .tar.bz2
2. Extraire (décompresser) une archive à l'aide de la commande tar
Extraire un fichier *.tar en utilisant l'option xvf
Extrayez un fichier tar en utilisant l'option x comme indiqué ci-dessous :
$ tar xvf archive_name.tar
- x - extraire les fichiers de l'archive
Extraire une archive tar gzippée ( *.tar.gz ) en utilisant l'option xvzf
Utilisez l'option z pour décompresser une archive tar gzip.
$ tar xvfz archive_name.tar.gz
Extraire une archive tar bzippée ( *.tar.bz2 ) en utilisant l'option xvjf
Utilisez l'option j pour décompresser une archive tar bzip2.
$ tar xvfj archive_name.tar.bz2
Remarque : Dans toutes les commandes ci-dessus, v est facultatif, ce qui répertorie le fichier en cours de traitement.
3. Lister une archive à l'aide de la commande tar
Afficher le contenu du fichier d'archive tar sans extraire à l'aide de l'option tvf
Vous pouvez afficher le contenu du fichier *.tar avant l'extraction, comme indiqué ci-dessous.
$ tar tvf archive_name.tar
Afficher le contenu du fichier *.tar.gz sans extraire à l'aide de l'option tvzf
Vous pouvez afficher le contenu du fichier *.tar.gz avant l'extraction, comme indiqué ci-dessous.
$ tar tvfz archive_name.tar.gz
Afficher le contenu du fichier *.tar.bz2 sans extraire à l'aide de l'option tvjf
Vous pouvez afficher le contenu du fichier *.tar.bz2 avant l'extraction, comme indiqué ci-dessous.
$ tar tvfj archive_name.tar.bz2
4. Lister le contenu du fichier tar avec la commande less
Lorsque le nombre de fichiers dans une archive est supérieur, vous pouvez rediriger la sortie de tar vers less. Mais, vous pouvez également utiliser la commande less directement pour afficher la sortie de l'archive tar, comme expliqué dans l'un de nos articles précédents Ouvrir et afficher 10 types de fichiers différents avec Linux Less Command - The Ultimate Power of Less.
5. Extraire un seul fichier du fichier tar, tar.gz, tar.bz2
Pour extraire un fichier spécifique d'une archive tar, spécifiez le nom du fichier à la fin de la commande tar xvf comme indiqué ci-dessous. La commande suivante extrait uniquement un fichier spécifique d'un fichier tar volumineux.
$ tar xvf archive_file.tar /path/to/file
Utilisez l'option appropriée z ou j selon la méthode de compression gzip ou bzip2 respectivement comme indiqué ci-dessous.
$ tar xvfz archive_file.tar.gz /path/to/file $ tar xvfj archive_file.tar.bz2 /path/to/file
6. Extraire un seul répertoire du fichier tar, tar.gz, tar.bz2
Pour extraire un seul répertoire (avec son sous-répertoire et ses fichiers) d'une archive tar, spécifiez le nom du répertoire à la fin de la commande tar xvf comme indiqué ci-dessous. Ce qui suit extrait uniquement un répertoire spécifique d'un gros fichier tar.
$ tar xvf archive_file.tar /path/to/dir/
Pour extraire plusieurs répertoires d'une archive tar, spécifiez ces noms de répertoires individuels à la fin de la commande tar xvf comme indiqué ci-dessous.
$ tar xvf archive_file.tar /path/to/dir1/ /path/to/dir2/
Utilisez l'option appropriée z ou j selon la méthode de compression gzip ou bzip2 respectivement comme indiqué ci-dessous.
$ tar xvfz archive_file.tar.gz /path/to/dir/ $ tar xvfj archive_file.tar.bz2 /path/to/dir/
7. Extraire un groupe de fichiers à partir d'archives tar, tar.gz, tar.bz2 à l'aide d'expressions régulières
Vous pouvez spécifier une expression régulière pour extraire les fichiers correspondant à un modèle spécifié. Par exemple, suivre la commande tar extrait tous les fichiers avec l'extension pl.
$ tar xvf archive_file.tar --wildcards '*.pl'
Explication des options :
- – jokers *.pl – fichiers avec l'extension pl
8. Ajouter un fichier ou un répertoire à une archive existante en utilisant l'option -r
Vous pouvez ajouter des fichiers supplémentaires à une archive tar existante comme indiqué ci-dessous. Par exemple, pour ajouter un fichier au fichier *.tar, procédez comme suit :
$ tar rvf archive_name.tar newfile
Ce nouveau fichier sera ajouté à l'archive_name.tar existante. L'ajout d'un répertoire au tar est également similaire,
$ tar rvf archive_name.tar newdir/
Remarque : Vous ne pouvez pas ajouter de fichier ou de répertoire à une archive compressée. Si vous essayez de le faire, vous obtiendrez l'erreur "tar :impossible de mettre à jour les archives compressées", comme indiqué ci-dessous.
$ tar rvfz archive_name.tgz newfile tar: Cannot update compressed archives Try `tar --help' or `tar --usage' for more information.
9. Vérifiez les fichiers disponibles dans tar en utilisant l'option -W
Dans le cadre de la création d'un fichier tar, vous pouvez vérifier le fichier d'archive qui a été créé à l'aide de l'option W comme indiqué ci-dessous.
$ tar cvfW file_name.tar dir/
Si vous envisagez de supprimer un répertoire/fichier d'un fichier d'archive ou du système de fichiers, vous souhaiterez peut-être vérifier le fichier d'archive avant de le faire, comme indiqué ci-dessous.
$ tar tvfW file_name.tar Verify 1/file1 1/file1: Mod time differs 1/file1: Size differs Verify 1/file2 Verify 1/file3
Si une ligne de sortie commence par Vérifier et qu'il n'y a pas de ligne différente, le fichier/répertoire est OK. Si ce n'est pas le cas, vous devez étudier le problème.
Remarque : pour un fichier archive compressé ( *.tar.gz, *.tar.bz2 ) vous ne pouvez pas faire la vérification.
Trouver la différence entre une archive et un système de fichiers peut être fait même pour une archive compressée. Il affiche également la même sortie que ci-dessus, à l'exception des lignes avec Vérifier.
Trouver la différence entre le fichier d'archive gzip et le système de fichiers
$ tar dfz file_name.tgz
Trouver la différence entre le fichier d'archive bzip2 et le système de fichiers
$ tar dfj file_name.tar.bz2
10. Estimer la taille de l'archive tar
La commande suivante estime la taille du fichier tar (en Ko) avant de créer le fichier tar.
$ tar -cf - /directory/to/archive/ | wc -c 20480
La commande suivante estime la taille du fichier tar compressé (en Ko) avant de créer les fichiers tar.gz, tar.bz2.
$ tar -czf - /directory/to/archive/ | wc -c 508 $ tar -cjf - /directory/to/archive/ | wc -c 428