In Linux et de Réseautage Dernière mise à jourated:
Partager sur:
Logiciel Jira est l'outil de gestion de projet n°1 utilisé par les équipes agiles pour planifier, suivre, publier et prendre en charge d'excellents logiciels.

tar est l'un des formats d'archivage de fichiers populaires disponibles dans les systèmes basés sur Unix et Linux.

Le nomself dérive de Tsinge ARchive car il a été développé pour écrire des données séquentielles sur des périphériques à bande. On l'appelle aussi parfois tarball.

Par défaut, tar uniquement archives les fichiers sans compression mais en utilisant certaines portions. Nous pouvons utiliser différentes techniques de compression pour obtenir une sortie compressée. L'utilitaire tar est habituelally inclus dans la plupart Linux distributions par défaut, et le format dans lequelself est pris en charge sur d'autres systèmes d'exploitation, y compris Windows et macOS, via différents outils et utilitaires.

Nous couvrirons certains des exemples courants et l'utilisation de la commande tar et de ses indicateurs pris en charge dans cet article.

Alors, commençons…

Create Arc de goudronhive

Pour créerate un simple arc non compresséhive, la syntaxe de tar la commande est:

$ tar cvf <tar-file-name> <files-to-archive>

Ici des drapeaux c peuplements pour creation, v pour la sortie verbeuse et f pour spécifier l'arc tarhive nom de fichier. Par convention, spécifiez le nom du fichier tar avec .tar extension. Fichiers à archived peut être spécifié avec des caractères génériques ou sous forme de noms/chemins de fichiers uniques ou multiples.

Par exemple, j'ai trois fichiers dans mon répertoire :

$ ls -l
total 12
-rw-r--r-- 1 abhisheknair abhisheknair 13 Sep 12 20:08 file1.txt
-rw-r--r-- 1 abhisheknair abhisheknair 19 Sep 12 20:08 file2.txt
-rw-r--r-- 1 abhisheknair abhisheknair 24 Sep 12 20:08 file3.txt
$

Et je veux créerate a tar archive contenant les trois fichiers, cela peut être fait comme :

$ tar cvf archive.tar *
file1.txt
file2.txt
file3.txt
$ ls -l archive.tar
-rw-r--r-- 1 abhisheknair abhisheknair 10240 Sep 12 20:15 archive.tar
$

Je ne peux spécifier que des fichiers spécifiques à archive ainsi que :

$ tar cvf archive1.tar file1.txt file2.txt
file1.txt
file2.txt
$ ls -l archive1.tar
-rw-r--r-- 1 abhisheknair abhisheknair 10240 Sep 12 20:15 archive1.tar
$

Create Arc compriméhive (GZ)

tar permet non seulement d'archiver des fichiers, mais également de les compresser pour économiser de l'espace. L'un des formats de compression les plus populaires est gunzip, généralementally représenté par extension .gz après .tar ou comme tgz. On peut utiliser z flag pour spécifier que nous avons besoin que les fichiers soient compressés à l'aide de gunzip. Voici un exemple :

$ tar cvzf archive.tar.gz file*
file1.txt
file2.txt
file3.txt
$ ls -l archive.tar archive.tar.gz
-rw-r--r-- 1 abhisheknair abhisheknair 10240 Sep 12 20:15 archive.tar
-rw-r--r-- 1 abhisheknair abhisheknair   188 Sep 12 20:21 archive.tar.gz
$

Vous pouvez observer la taille des deux arcshive les fichiers sont substantielsally différent même si les deux contiennent les trois mêmes fichiers. Cela est dû à l'utilisation de la compression utilisant z drapeau.

Create Arc compriméhive (BZ2)

tar prend en charge plusieurs autres formats de compression. L'un d'eux est bz2 or bzip2 qui est représenté par extension tar.bz2 ou parfois comme tbz2. Cela peut vous donner un arc plus petithive taille mais consomme à son tour plus de CPU, donc le process de compression/décompression pourrait être plus lente que gz archive.

Mise en situation :

$ tar cvjf archive.tar.bz2 file*
file1.txt
file2.txt
file3.txt
$ ls -l archive.tar archive.tar.gz archive.tar.bz2
-rw-r--r-- 1 abhisheknair abhisheknair 10240 Sep 12 20:15 archive.tar
-rw-r--r-- 1 abhisheknair abhisheknair   212 Sep 12 20:25 archive.tar.bz2
-rw-r--r-- 1 abhisheknair abhisheknair   188 Sep 12 20:21 archive.tar.gz
$ file archive.tar*
archive.tar:     POSIX tar archive (GNU)
archive.tar.bz2: bzip2 compressed data, block size = 900k
archive.tar.gz:  gzip compressed data, from Unix, original size modulo 2^32 10240
$

Décompresser tous les fichiers

Un arc de goudronhive (qu'il soit compressé ou non) peut être extrasimplement en utilisant le x option. Les exemples ci-dessous clarifieront son utilisation :

$ tar xvf archive.tar
file1.txt
file2.txt
file3.txt
$ ls -l
total 24
-rw-r--r-- 1 abhisheknair abhisheknair 10240 Sep 19 18:25 archive.tar
-rw-r--r-- 1 abhisheknair abhisheknair    13 Sep 12 20:08 file1.txt
-rw-r--r-- 1 abhisheknair abhisheknair    19 Sep 12 20:08 file2.txt
-rw-r--r-- 1 abhisheknair abhisheknair    24 Sep 12 20:08 file3.txt
$

Cela fonctionne pour un gz arc compriméhive comme:

$ tar xvf archive.tar.gz
file1.txt
file2.txt
file3.txt
$ ls -l
total 16
-rw-r--r-- 1 abhisheknair abhisheknair 188 Sep 19 18:27 archive.tar.gz
-rw-r--r-- 1 abhisheknair abhisheknair  13 Sep 12 20:08 file1.txt
-rw-r--r-- 1 abhisheknair abhisheknair  19 Sep 12 20:08 file2.txt
-rw-r--r-- 1 abhisheknair abhisheknair  24 Sep 12 20:08 file3.txt
$

Ou même pour un bz2 arc compriméhive comme:

$ tar xvf archive.tar.bz2
file1.txt
file2.txt
file3.txt
$ ls -l
total 16
-rw-r--r-- 1 abhisheknair abhisheknair 212 Sep 19 18:31 archive.tar.bz2
-rw-r--r-- 1 abhisheknair abhisheknair  13 Sep 12 20:08 file1.txt
-rw-r--r-- 1 abhisheknair abhisheknair  19 Sep 12 20:08 file2.txt
-rw-r--r-- 1 abhisheknair abhisheknair  24 Sep 12 20:08 file3.txt
$

Liste du contenu tar

Pour lister le contenu d'un arc tarhive, Vous pouvez utiliser t drapeau comme indiqué ci-dessous :

$ tar tvf archive.tar.bz2
-rw-r--r-- abhisheknair/abhisheknair 13 2021-09-12 20:08 file1.txt
-rw-r--r-- abhisheknair/abhisheknair 19 2021-09-12 20:08 file2.txt
-rw-r--r-- abhisheknair/abhisheknair 24 2021-09-12 20:08 file3.txt
$

Décompresser des fichiers spécifiques

Un seul fichier peut être extratiré d'un tar or tar.gz or tar.bz2 archive en spécifiant le nom du fichier comme :

$ tar xvf archive.tar.bz2 file1.txt
file1.txt
$ ls -l
total 8
-rw-r--r-- 1 abhisheknair abhisheknair 212 Sep 19 18:31 archive.tar.bz2
-rw-r--r-- 1 abhisheknair abhisheknair  13 Sep 12 20:08 file1.txt
$

De même, vous pouvez spécifier plusieurs noms de fichiers séparésated par espace à extraRassemblez-les en une seule fois.

$ tar xvf archive.tar.bz2 file1.txt file3.txt
file1.txt
file3.txt
$ ls -l
total 12
-rw-r--r-- 1 abhisheknair abhisheknair 212 Sep 19 18:31 archive.tar.bz2
-rw-r--r-- 1 abhisheknair abhisheknair  13 Sep 12 20:08 file1.txt
-rw-r--r-- 1 abhisheknair abhisheknair  24 Sep 12 20:08 file3.txt
$

Décompresser à l'aide de Wildcard

À extract un ou plusieurs fichiers à l'aide d'un caractère générique PATTERN, utilisation --wildcards drapeau:

$ tar xvf archive.tar.bz2 --wildcards "file*"
file1.txt
file2.txt
file3.txt
$ ls -l
total 16
-rw-r--r-- 1 abhisheknair abhisheknair 212 Sep 19 18:31 archive.tar.bz2
-rw-r--r-- 1 abhisheknair abhisheknair  13 Sep 12 20:08 file1.txt
-rw-r--r-- 1 abhisheknair abhisheknair  19 Sep 12 20:08 file2.txt
-rw-r--r-- 1 abhisheknair abhisheknair  24 Sep 12 20:08 file3.txt
$

Ajouter des fichiers à Archive

De nouveaux fichiers peuvent être ajoutés/ajoutés aux archives tar non compressées existantes en utilisant r or --append indicateur avec de nouveaux noms de fichiers ou un motif générique (rappelez-vous que cela ne fonctionne qu'avec .tar fichiers et non avec tar.gz or tar.bz2 formats compressés) :

$ tar rvf archive.tar file-new*
file-new.txt
file-new2.txt
$ tar tvf archive.tar
-rw-r--r-- abhisheknair/abhisheknair 13 2021-09-12 20:08 file1.txt
-rw-r--r-- abhisheknair/abhisheknair 19 2021-09-12 20:08 file2.txt
-rw-r--r-- abhisheknair/abhisheknair 24 2021-09-12 20:08 file3.txt
-rw-r--r-- abhisheknair/abhisheknair 15 2021-09-19 18:59 file2.txt
-rw-r--r-- abhisheknair/abhisheknair 10 2021-09-19 18:58 file4.txt
-rw-r--r-- abhisheknair/abhisheknair  9 2021-09-19 19:10 file-new.txt
-rw-r--r-- abhisheknair/abhisheknair  9 2021-09-19 19:10 file-new2.txt
$

Vous pouvez observer que la liste du contenu de archive.tar montre à nouveau les deux fichiers nouvellement ajoutés.

Supprimer des fichiers d'Archive

Suppression de fichiers spécifiques d'un arc tarhive est possible en utilisant --delete flag comme indiqué ci-dessous (comparez la liste tar avant et après la suppression des fichiers) :

$ tar tvf archive.tar
-rw-r--r-- abhisheknair/abhisheknair 13 2021-09-12 20:08 file1.txt
-rw-r--r-- abhisheknair/abhisheknair 19 2021-09-12 20:08 file2.txt
-rw-r--r-- abhisheknair/abhisheknair 24 2021-09-12 20:08 file3.txt
-rw-r--r-- abhisheknair/abhisheknair 15 2021-09-19 18:59 file2.txt
-rw-r--r-- abhisheknair/abhisheknair 10 2021-09-19 18:58 file4.txt
-rw-r--r-- abhisheknair/abhisheknair  9 2021-09-19 19:10 file-new.txt
-rw-r--r-- abhisheknair/abhisheknair  9 2021-09-19 19:10 file-new2.txt
$ tar --delete -f archive.tar file-new.txt file-new2.txt
$ tar tvf archive.tar
-rw-r--r-- abhisheknair/abhisheknair 13 2021-09-12 20:08 file1.txt
-rw-r--r-- abhisheknair/abhisheknair 19 2021-09-12 20:08 file2.txt
-rw-r--r-- abhisheknair/abhisheknair 24 2021-09-12 20:08 file3.txt
-rw-r--r-- abhisheknair/abhisheknair 15 2021-09-19 18:59 file2.txt
-rw-r--r-- abhisheknair/abhisheknair 10 2021-09-19 18:58 file4.txt
$

Encore une fois, cela ne fonctionne que pour les archives tar non compressées et échouera pour l'arc compressé.hive formats.

Create avec Vérifier

Lors de la création de fichiers tar non compressés, vous pouvez vérifier le contenu de l'archive en utilisant W marquer comme:

$ tar cvfW archive.tar file*.txt
file1.txt
file2.txt
file3.txt
Verify file1.txt
Verify file2.txt
Verify file3.txt
$

Cela ne peut pas être utilisé avec les indicateurs de compression, bien que vous puissiez compresser le created tar filet later en utilisant gzip ou d'autres outils.

Extract tar dans le dossier

Si tu veux extratransférez le contenu de votre archive tar dans un dossier spécifique au lieu du répertoire actuel, utilisez -C flag avec le chemin du répertoire comme indiqué ci-dessous :

$ tar xvf archive.tar -C new-directory/
file1.txt
file2.txt
file3.txt
file2.txt
file4.txt
$ ls -l new-directory/
total 16
-rw-r--r-- 1 abhisheknair abhisheknair 13 Sep 12 20:08 file1.txt
-rw-r--r-- 1 abhisheknair abhisheknair 15 Sep 19 18:59 file2.txt
-rw-r--r-- 1 abhisheknair abhisheknair 24 Sep 12 20:08 file3.txt
-rw-r--r-- 1 abhisheknair abhisheknair 10 Sep 19 18:58 file4.txt
$

Utiliser l'indicateur de différence

Vous pouvez utiliser --diff or d indicateur pour trouver les changements entre les fichiers dans l'arc tarhive et ceux du système de fichiers. Voici un exemple qui exécute le diff une fois lorsque le fichier à l'intérieur du tar et à l'extérieur était le même. Après la mise à jour du fichier, il a été exécuté à nouveau pour montrer la différence de sortie.

$ tar dvf archive.tar file4.txt
file4.txt
$
$ echo newline > file4.txt
$
$ tar dvf archive.tar file4.txt
file4.txt
file4.txt: Mod time differs
file4.txt: Size differs
$

Exclure des fichiers

L'exclusion de fichiers spécifiques peut être une exigence lors de la création d'un arc tarhives. Ceci peut être réalisé avec --exclude drapeau.

$ tar --exclude="dir/file2.txt" --exclude="dir/file-new*.txt" -cvzf archive.tar.gz dir/
dir/
dir/file1.txt
dir/file3.txt
$ ls -l dir
total 24
-rw-r--r-- 1 abhisheknair abhisheknair 9 Sep 19 19:10 file-new.txt
-rw-r--r-- 1 abhisheknair abhisheknair 9 Sep 19 19:10 file-new2.txt
-rw-r--r-- 1 abhisheknair abhisheknair 5 Sep 19 19:20 file-new3.txt
-rw-r--r-- 1 abhisheknair abhisheknair 5 Sep 19 19:27 file1.txt
-rw-r--r-- 1 abhisheknair abhisheknair 6 Sep 19 19:27 file2.txt
-rw-r--r-- 1 abhisheknair abhisheknair 8 Sep 19 19:27 file3.txt
$ tar tvf archive.tar.gz
drwxr-xr-x abhisheknair/abhisheknair 0 2021-09-19 19:30 dir/
-rw-r--r-- abhisheknair/abhisheknair 5 2021-09-19 19:27 dir/file1.txt
-rw-r--r-- abhisheknair/abhisheknair 8 2021-09-19 19:27 dir/file3.txt
$

Comme vous pouvez le constater à partir de la sortie ci-dessus, nous pouvons spécifier le --exclude marquer plusieurs fois pour spécifier plusieurs noms de fichiers ou modèles dans AND état. Notez que sur les six fichiers du dir dans l'exemple ci-dessus, seuls deux fichiers remplissaient la condition d'être inclus dans archive.at.gz.

Afficher la taille du contenu tar

Nous pouvons obtenir la taille du contenu d'un arc tar compresséhive en utilisant la commande ci-dessous :

$ tar tvf archive.tar.gz
-rw-r--r-- abhisheknair/abhisheknair 13 2021-09-12 20:08 file1.txt
-rw-r--r-- abhisheknair/abhisheknair 19 2021-09-12 20:08 file2.txt
-rw-r--r-- abhisheknair/abhisheknair 24 2021-09-12 20:08 file3.txt
$ tar -xzf archive.tar.gz --to-stdout|wc -c
56
$

De même pour bz2 archive:

$ tar tvf archive.tar.bz2
-rw-r--r-- abhisheknair/abhisheknair 13 2021-09-12 20:08 file1.txt
-rw-r--r-- abhisheknair/abhisheknair 19 2021-09-12 20:08 file2.txt
-rw-r--r-- abhisheknair/abhisheknair 24 2021-09-12 20:08 file3.txt
$ tar -xjf archive.tar.bz2 --to-stdout|wc -c
56
$

Conserver les autorisations

Par défaut, tar La commande préserve l'autorisation des fichiers et des répertoires qu'elle archive bien que vous puissiez explicitement spécifier la même chose en utilisant -p drapeau ou --preserve-permissions comme indiqué ci-dessous:

$ tar cvpzf archive.tar.gz *.txt
file1.txt
file2.txt
file3.txt
$

Résumé 👨‍💻

tar est un utilitaire utile sur les systèmes Unix/Linux depuis longtemps et a été principalement utilisé dans les tâches d'archivage et de sauvegarde. L'utilitaire a évolué avec de nombreuses options au fil du temps. Il peut être utilisé pour des tâches simples à complexes, étant donné que vous connaissez les fonctionnalités qu'il offre. Cet article a couvert certaines des opérations de base que vous pouvez faire avec tar commande et montre comment il peut vous aider dans votre tâches quotidiennes d'administration du système.

Référez-vous à sa page de manuel man tar ou de l'utilisation tar --help or tar --usage commande pour obtenir plus de détails.

Partager sur:
  • Abishek Nair
    Auteur
    Abhishek est un SysOps ingénieur et adore écrire sur Linux, AWS et l'administration système.

Merci à nos commanditaires

Plus de bonnes lectures sur Linux

Alimentez votre entreprise

Certains des outils et services pour aider votre entreprise grow.
  • L'outil de synthèse vocale qui utilise l'IA pour générerate des voix humaines réalistes.

    Essayez Murf AI
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.

    Essayez Brightdata
  • Monday.com est un système d'exploitation de travail tout-en-un pour vous aider à gérer les projets, les tâches, le travail, les ventes, le CRM, les opérations, workflowset plus encore.

    Essayez Monday
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.

    Essayez Intruder