GNU/Linux >> Tutoriels Linux >  >> Linux

Commande tar sous Linux avec des exemples

Présentation

Le tar GNU (abréviation de T singe AR chiver) est l'utilitaire d'archivage le plus largement utilisé dans les systèmes Linux. Disponible directement dans le terminal, le tar La commande permet de créer, d'extraire et de répertorier le contenu de l'archive.

L'utilitaire est simple et propose de nombreuses options utiles pour compresser des fichiers, gérer des sauvegardes ou extraire une installation brute.

Ce tutoriel montre comment utiliser la commande tar à travers des exemples et les options disponibles.

Prérequis

  • Un système exécutant Linux.
  • Accès à la ligne de commande/au terminal.
  • Un ou plusieurs fichiers pour tester la commande.

Syntaxe de la commande Tar

Le tar la syntaxe générale de la commande est :

tar <operation mode> <option(s)> <archive> <file(s) or location(s)>
  • Mode de fonctionnement indique quelle opération s'exécute sur les fichiers (création, extraction, etc.). La commande autorise et ne nécessite qu'une seule opération.
  • Options modifier le mode de fonctionnement et ne sont pas nécessaires. Il n'y a pas de limite au nombre d'options.
  • Lesarchives est le nom et l'extension du fichier.
  • Le(s) nom(s) de fichier est une liste séparée par des espaces pour l'extraction ou la compression ou un nom correspondant à un caractère générique.

Il existe trois styles de syntaxe possibles pour utiliser les opérations et les options :

1. Style traditionnel , regroupés sans tirets.

Par exemple :

tar cfv <archive> <file(s) or location(s)>

2. Style d'option courte UNIX , en utilisant un seul tiret et des options groupées :

tar -cfv <archive> <file(s) or location(s)>

Alternativement, un tiret avant chaque option :

tar -c -f -v <archive> <file(s) or location(s)>

3. Style d'option longue GNU avec un double tiret et un nom d'option descriptif :

tar --create --file <archive> --verbose <file(s) or location(s)>

Les trois styles peut être utilisé dans un seul tar commande.

Options de la commande tar

Le tableau suivant décrit le tar couramment utilisé opérations et options.

Commande Rôle Description
--create
-c
Fonctionnement Crée une nouvelle archive.
--list
-t
Fonctionnement Liste le contenu d'une archive.
--extract
-x
Fonctionnement Extraire un ou plusieurs éléments d'une archive.
--append
-r
Fonctionnement Ajoute des fichiers à une archive existante.
--concatenate
-A
Fonctionnement Ajoute des archives à une archive existante.
--compare
--diff
-d
Fonctionnement Compare les membres de l'archive avec les fichiers sur le système.
--delete Fonctionnement Supprime un membre de l'archive.
--update
-u
Fonctionnement Met à jour l'archive avec de nouveaux fichiers uniquement s'ils ne sont pas dans l'archive et sont plus récents que les fichiers existants.
--file=<archive>
-f <archive>
Option Spécifie le fichier.
-C Option Change le répertoire.
--verbose
-v
Option Affiche le fichier tar fonctionne pendant l'exécution.
--wildcard Option Rend les options de recherche génériques.
--bzip2
-j
Option Lire ou écrire des archives compressées au format bzip2.
--gzip
-z
Option Lire ou écrire des archives compressées au format gzip.
--xz
-J
Option Lire ou écrire des archives compressées au format xz.

Suivez les exemples de la section suivante pour apprendre comment travailler avec tar .

Exemples de commandes Tar

Les exemples ci-dessous ont les exigences suivantes :

1. Créez un répertoire nommé tar_examples et accédez au répertoire :

mkdir tar_examples && cd tar_examples

2. Créez un autre répertoire appelé fichiers dans tar_examples et entrez dans ce répertoire :

mkdir files && cd files

3. Créez des fichiers pour remplir les fichiers répertoire :

touch file{0..100}.txt

Pour revenir au répertoire parent, utilisez :

cd ..

Tous les exemples ci-dessous fonctionnent à partir des tar_examples répertoire.

1. Créer une archive

La syntaxe de création d'une archive dépend du type d'archive. Pour créer une archive, utilisez tar avec le -c ou --create opération.

Créer une archive tar

Pour créer une archive tar (également appelée tarball), utilisez :

tar cf <archive name>.tar <file(s) or location(s)>

Par exemple, archivez les fichiers répertoire :

tar cf files.tar files

La sortie répertorie chaque fichier ajouté à l'archive. Affichez le contenu du répertoire pour voir le fichier.tar créé archive :

tar cf files.tar files

La sortie répertorie chaque fichier ajouté à l'archive. Affichez le contenu du répertoire pour voir le fichier.tar créé archive :

ls -l

Créer une archive compressée tar.gz

Ajoutez le -z option pour créer un fichier GNUzip (gzip) compressé :

tar czf <archive name>.tar.gz <file(s) or location(s)>

Par exemple :

tar czf files.tar.gz files

La taille du fichier est inférieure à celle d'un fichier tarball normal et du répertoire d'origine.

Créer une archive compressée tar.bz2

Le bzip2 est un programme de compression de fichiers et une alternative à gzip.

Pour créer un tar.bz2 fichier, ajoutez le -j balise :

tar cjf <archive name>.tar.bz2 <file(s) or location(s)>

Par exemple :

tar cjf files.tar.bz2 files

Le bzip2 a un taux de compression plus élevé et prend plus de temps que gzip.

Créer une archive tar.xz

Utilisez le -J tag pour compresser les archives au format tar.xz :

tar cJf <archive name>.tar.xz <file(s) or location(s)>

Par exemple :

tar cJf files.tar.xz files

La compression xz prend le plus de temps par rapport à gzip et bz2. Cependant, avec des fichiers plus volumineux, xz a les taux de compression les plus élevés.

2. Supprimer les fichiers après la création

Pour supprimer les fichiers du disque après l'archivage, utilisez le --remove-files option à la fin :

tar cf <archive> <file(s) or location(s)> --remove-files

Par exemple, créez une archive tar avec les fichiers répertoire et supprimez-le du disque en une seule commande :

tar cf files.tar files --remove-files

Vérifiez le contenu du répertoire pour confirmer que l'opération fonctionne correctement.

3. Extrait de l'archive

L'extraction d'une archive ou d'une archive compressée utilise le -x ou --extract opération avec tar . Les options supplémentaires dépendent du type de fichier et de l'endroit où tar doit extraire les composants.

Extraire de l'archive tar

La syntaxe générale pour extraire d'une archive tar est :

tar xf <archive name>.tar

Par défaut, tar extrait tous les composants dans le répertoire courant. Pour indiquer où extraire les composants, ajoutez le -C option et indiquez le chemin :

tar xfC <archive name>.tar <path>

Par exemple, pour créer un répertoire nommé extrait_tar et extrayez les fichiers de files.tar , exécutez :

mkdir extracted_tar && tar xfC files.tar extracted_tar

La commande ne génère pas de message de confirmation. Vérifiez le contenu du répertoire pour confirmer que les composants ont été extraits avec succès.

Extraire de l'archive tar.gz

Utilisez le -z option pour extraire un fichier tar.gz :

tar xzf <archive name>.tar.gz

La commande extrait le contenu du répertoire courant. Ajoutez le -C option pour spécifier l'emplacement :

tar xzfC <archive name>.tar.gz <location>

Par exemple, créez un nouveau répertoire nommé extracted_gz et extrayez les files.tar.gz contenu :

mkdir extracted_gz && tar xzfC files.tar.gz extracted_gz

Les archives compressées tar.gz prennent le moins de temps à extraire par rapport aux autres formats de compression.

Extraire de l'archive tar.bz2

Pour extraire des fichiers d'une archive compressée tar.bz2 dans le répertoire courant, utilisez :

tar xjf <archive name>.tar.bz2

Extrayez les archives tar.bz2 dans un répertoire spécifique avec :

tar xjfC <archive name>tar.bz2 <location>

Par exemple, créez un répertoire et extrayez le contenu de files.tar.bz2 :

mkdir extracted_bz2 && tar xjfC files.tar.bz2 extracted_bz2

Extraire de l'archive tar.xz

Ajoutez le -J option pour extraire des archives compressées tar.xz. La syntaxe à extraire dans le répertoire courant est :

tar xJf <archive name>.tar.xz

Pour extraire le contenu dans un répertoire spécifique, utilisez le -C option et ajoutez le chemin :

tar xJfC <archive name>.tar.xz <location>

Par exemple, créez un répertoire et extrayez les files.tar.xz contenu :

mkdir extracted_xz && tar xJfC files.tar.xz extracted_xz

Le format de compression xz est le juste milieu entre gz et bz2 en ce qui concerne le temps d'extraction.

4. Écraser le contrôle

Les contrôles d'écrasement de tar gèrent les situations où les noms de fichiers dans l'archive chevauchent des fichiers dans le répertoire de travail.

Les trois actions de remplacement possibles sont :

1. Remplacez les fichiers du répertoire de travail :

tar xf <archive> <Optional file(s) or location(s)> --overwrite

2. N'écrasez pas les fichiers du répertoire de travail :

tar xf <archive> <Optional file(s) or location(s)> --keep-old-files

Si les fichiers existent déjà, tar n'effectue pas l'extraction.

3. Extrayez les fichiers uniquement s'ils sont plus récents que les fichiers existants :

tar xf <archive> <Optional file(s) or location(s)> --keep-newer-files

Si les fichiers du répertoire de travail sont plus récents ou du même âge, tar n'extrait pas les fichiers.

5. Lister le contenu des archives

Utilisez la commande suivante pour lister le contenu d'une archive :

tar tf <archive>

L'option fonctionne pour toute extension de fichier contenant tar.

Par exemple, listez les fichiers et répertoires dans le fichier files.tar archive :

tar tf files.tar.gz

La sortie répertorie tous les contenus stockés dans l'archive.

6. Rechercher un fichier dans une archive

Il existe deux manières de localiser un contenu spécifique à l'aide de tar :

1. Le -t L'option permettant de lister les fichiers dans une archive est pratique pour localiser des fichiers spécifiques. Ajoutez le nom (ou les noms) de fichier après la commande :

tar tf <archive> <file(s)>

Par exemple, pour localiser file50.txt dans les files.tar.gz archiver, exécuter :

tar tf files.tar.gz file/file50.txt

L'option nécessite de connaître le chemin d'accès possible au fichier.

2. Utilisez le tar avec la commande grep pour filtrer la sortie :

tar tf <archive> | grep <file(s)>

Par exemple :

tar tf files.tar.gz | grep file50.txt

L'option ne nécessite pas de connaître le chemin d'accès possible au fichier.

7. Rechercher plusieurs fichiers dans une archive

Utilisez le --wildcards option pour faire correspondre plusieurs instances de fichiers. Par exemple :

tar tf files.tar.gz --wildcards file/files5*.txt

Appliquez une correspondance générique lorsque les fichiers ont un nom similaire ou pour filtrer un certain type de fichier.

8. Exclure les fichiers lors de la création d'une archive

Pour exclure certains fichiers de l'archive lors de la création, ajoutez l'option suivante :

tar cf <archive> --exclude='<pattern>' <files(s) or location(s)>

Par exemple, créez une archive à partir du répertoire des fichiers et excluez tous les fichiers .txt :

tar cf files.tar --exclude='*.txt' files

Lister le contenu de l'archive :

tar tf files.tar

La sortie n'affiche aucun fichier .txt, uniquement les fichiers répertoire dans l'archive.

9. Extraire un seul fichier de l'archive

Évitez d'extraire toute l'archive si vous avez besoin d'un ou plusieurs fichiers.

Pour obtenir un seul fichier à partir d'une archive :

1. Lister le contenu et vérifier si le fichier existe :

tar tf files.tar | grep file100.txt

La sortie imprime le chemin d'accès au fichier nécessaire pour l'étape suivante.

2. Extrayez le fichier spécifique avec :

tar xf files.tar files/file100.txt

La commande crée le répertoire fichiers avec uniquement le fichier indiqué. Suivez les mêmes étapes pour extraire un seul fichier à partir d'archives compressées en ajoutant la balise appropriée. Par exemple, utilisez le -z option pour extraire d'un fichier tar.gz.

10. Option détaillée

L'option détaillée affiche des informations supplémentaires après l'exécution d'une commande tar. Ajouter -v ou --verbose à n'importe quelle opération pour voir le résultat.

Par exemple, créez un fichier tar.gz et ajoutez -v :

tar czfv files.tar.gz files

La sortie montre chaque fichier tel qu'il est ajouté à l'archive.

Certaines commandes tar affichent des informations supplémentaires lorsque vous ajoutez le -v marquer deux fois. Par exemple, essayez d'ajouter des fichiers à une archive avec -vv :

tar czfvv files.tar.gz files

La sortie imprime un long format de liste et ressemble à l'exécution de la commande ls -l.

11. Supprimer des archives

Pour supprimer de l'archive, localisez le fichier que vous souhaitez supprimer, par exemple :

tar tf files.tar | grep file100.txt

Ensuite, supprimez le fichier en utilisant le --delete balise :

tar --delete -f files.tar files/file100.txt

L'option de suppression ne fonctionne pas sur compressé formats de fichier.

12. Ajouter des fichiers à archiver

Ajouter des fichiers à une archive existante en utilisant le -r étiqueter. La syntaxe est :

tar rf <archive name>.tar <file(s) or location(s)>

Par exemple, ajoutez le fichier compressé files.tar.gz fichier dans files.tar archive :

tar rf files.tar files.tar.gz

Les archives déjà compressées ne peuvent pas être mises à jour, donc la syntaxe ne fonctionne que pour les fichiers tarball .

13. Combiner les archives

Utilisez le --concatenate ou -A possibilité de combiner plusieurs archives. La syntaxe de base est :

tar Af <archive to extend> <archive to extend with>

Par exemple, copiez le fichier files.tar existant fichier à l'aide de la commande cp :

cp files.tar files_copy.tar

Ensuite, concaténez les deux archives :

tar Af files.tar files_copy.tar

Pour confirmer que la concaténation a fonctionné, vérifiez la taille du fichier.

14. Différence entre archive et fichiers

Pour vérifier la différence entre une archive et des fichiers sur disque, utilisez le -d balise :

tar df <archive name>

La commande recherche le même contenu et le compare à ce qui se trouve dans l'archive. L'option vérifie uniquement les fichiers existants et ignore tous les fichiers nouvellement ajoutés.

Les étapes ci-dessous montrent comment utiliser le -d , --diff , ou --compare tag avec tar :

1. Créez une archive tar :

tar cf files.tar files

2. Comparez l'archive avec le répertoire existant :

tar df files.tar

La sortie n'affiche rien, ce qui signifie qu'il n'y a aucune différence entre les fichiers existants.

3. Ajouter du texte à un fichier existant dans les fichiers répertoire :

echo 'Hello' >> files/file0.txt

4. Comparez à nouveau l'archive au répertoire existant :

tar df files.tar

Cette fois, la sortie montre des différences dans l'heure de modification et la taille d'un fichier spécifique. La comparaison donne un aperçu de toutes les modifications apportées au système après la création de l'archive.

15. Mettre à jour les fichiers dans l'archive

Mettez à jour les fichiers existants dans l'archive avec une version plus récente à partir du disque avec le -u choix :

tar uf <archive> <file(s) or location(s)>

Par exemple, mettez à jour le fichier files.tar archiver avec un fichier texte modifié :

tar uf files.tar files

Vérifiez le contenu tar du fichier modifié :

tar tfv files.tar | grep files0.txt

La commande met à jour l'archive avec les fichiers modifiés sans aucun écrasement.

16. Heure modifiée

Tar offre diverses options pour modifier l'horodatage du fichier. Définissez une date personnalisée lors de la création d'une archive en ajoutant le --mtime option et en indiquant une date :

tar cf <archive> <file(s) or location(s)> --mtime=YYYY-MM-DD

Par exemple, créez une archive et définissez la date au 1er janvier 1999 :

tar cf files.tar files --mtime=1999-01-01

Vous pouvez également extraire les fichiers avec la date et l'heure actuelles :

tar xf files.tar -m

Une fonctionnalité utile lorsque vous travaillez avec le temps est de filtrer les fichiers modifiés après une date spécifique. Par exemple, pour extraire des fichiers créés après une date, utilisez le --newer-mtime option et ajoutez la date :

tar xf <archive> --newer-mtime=YYYY-MM-DD

17. Autorisations

Il existe deux façons de contrôler les autorisations de fichiers avec tar lors de l'extraction d'une archive :

1. Conserver les autorisations d'origine :

tar xf <archive name> --preserve-permissions

Les autorisations sont celles indiquées dans le fichier avant la création de l'archive.

2. Modifiez les autorisations à la valeur umask par défaut :

tar xf <archive name> --no-same-permissions

Les fichiers prennent les autorisations Linux par défaut.

18. Propriété du fichier

Tar permet la configuration de la propriété des fichiers. Par exemple, pour définir le propriétaire du fichier lors de la création d'une archive, ajoutez le --owner et --group options et fournissez des valeurs pour chacune :

tar cf <archive> <file(s) or location(s)> --owner=<value> --group=<value>

La valeur du propriétaire représente l'UID (ID utilisateur) alors que la valeur du groupe est le GID (ID de groupe). Pour trouver ces valeurs pour un utilisateur, exécutez :

id <username>

Par exemple, créez une archive et définissez la propriété sur root :

tar cf files.tar files --owner=0 --group=0

Tar permet de conserver la propriété lors de l'extraction d'une archive. Pour ce faire, ajoutez le --same-owner option à la fin :

tar xf <archive> --same-owner

19. Écrire dans un programme externe

Le --to-command L'option indique à tar d'envoyer chaque fichier extrait vers la sortie standard pour un programme externe. La syntaxe de base est :

tar xf <archive> --to-command='<command>'

Par exemple, extrayez le files.tar contents et redirigez les noms de fichiers sous forme de répertoires :

tar xf files.tar --to-command='mkdir $TAR_FILENAME'

La commande crée des répertoires nommés d'après chaque fichier extrait. Pour plus d'informations et les variables d'environnement Linux disponibles, visitez la page du manuel.

20. Créer des sauvegardes quotidiennes

Pour automatiser les sauvegardes quotidiennes, créez un script bash et ajoutez les lignes suivantes :

tar czf backup-$(date +%Y%m%d).tar.gz files
find backup* -mtime +1 -delete

La commande tar crée une archive compressée, tandis que la commande find recherche les fichiers de sauvegarde de plus d'un jour. Changez le +1 paramètre à +7 pour la semaine ou +31 pour les sauvegardes mensuelles.


Linux
  1. Commande Linux Tee avec exemples

  2. Commande principale Linux avec exemples

  3. Commande JQ sous Linux avec exemples

  4. Commande Linux tar

  5. Exemples de commandes tar sous Linux

Commande Tr sous Linux avec des exemples

15 Commande Linux ps avec exemples

Commande de CD Linux avec exemples

Commande Linux watch avec exemples

15 La commande Tar dans Linux utilise avec des exemples

Commande IP Linux avec exemples