logo

Commande Tar sous Linux/Unix avec exemples

La commande tar est l'abréviation de archives sur bande sous Linux. Cette commande est utilisée pour créer une archive et extraire les fichiers d'archive. Dans Linux , c'est l'une des commandes essentielles qui facilitent la fonctionnalité d'archivage. Nous pouvons utiliser cette commande pour créer des fichiers d'archives non compressés et compressés, ainsi que les modifier et les conserver.

Tar est un utilitaire de logiciel informatique permettant de collecter plusieurs fichiers dans un seul fichier d'archive informatique. Souvent, il est connu sous le nom d’archive tar à des fins de sauvegarde et de distribution. Le titre est acquis à partir de « archive sur bande » car il a été en fait développé pour spécifier des données sur des périphériques d'E/S séquentiels en n'utilisant aucun de leurs systèmes de fichiers. Les groupes de données d'archive créés par tar incluent de nombreux paramètres du système de fichiers tels que l'organisation des répertoires, l'autorisation d'accès aux fichiers, la propriété, les horodatages et le nom. Au profit de pax, POSIX a abandonné tar, tar étant pourtant largement utilisé.

Tout d'abord, il a été annoncé dans la version 7 d'Unix en janvier 1979, en remplacement du programme tp. Pour stocker les données, la structure des fichiers a été standardisée dans POSIX.1-1988 et plus tard POSIX.1-2001 et est devenue un modèle pris en charge par presque tous les systèmes d'archivage de fichiers modernes. Les systèmes d'exploitation de type Unix contiennent généralement des outils pour prendre en charge les fichiers tar et des utilitaires utilisés pour les compresser, comme bzip2 et gzip.
Depuis la mise à jour Microsoft du 10 avril 2018, BSD-tar est contenu dans Microsoft Windows, et il existe au moins deux outils tiers permettant de lire et d'écrire ces modèles sous Windows.

Formats de fichiers tar

Il existe de nombreux formats de fichiers tar disponibles, y compris les formats actuels et historiques. Deux formats tar sont écrits en POSIX : pax et ustar.

Entête

L'enregistrement d'en-tête de fichier comprend les métadonnées d'un fichier. Dans l'enregistrement d'en-tête, les informations sont codées selon les normes ASCII pour garantir la flexibilité entre des architectures distinctes utilisant un ordre d'octets distinct. Par conséquent, si chaque fichier est un fichier texte ASCII dans une archive et contient des noms ASCII, l'archive est un fichier texte ASCII (ayant plusieurs caractères NUL).

Plusieurs champs sont mentionnés dans le tableau suivant, définis par le format tar Unix actuel. Le tableau des types de fichiers de liens/indicateurs contient quelques extensions modernes. Un champ est rempli de divers octets NUL s'il n'est pas utilisé.

En-tête tar pré-POSIX.1-1988 :

Champ Taille du champ Décalage de champ
Nom de fichier 100 0
Mode fichier 8 100
ID utilisateur numérique du propriétaire 8 108
ID utilisateur numérique du groupe 8 116
Taille du fichier en octets 12 124
Heure de la dernière modification sous forme d'heure Unix numérique 12 136
Somme de contrôle pour l'enregistrement d'en-tête 8 148
Indicateur de lien 1 156
Nom du fichier lié 100 157

Format Ustart

Au format Ustar, presque tous les programmes tar modernes écrivent et lisent des archives, annoncées par la norme POSIX IEEE P1003.1 de 1988. Elle a introduit des champs d'en-tête supplémentaires. Les programmes tar précédents éviteraient les informations supplémentaires, mais les nouveaux programmes vérifieront la présence de la chaîne « Ustar » pour décider si le format le plus récent est utilisé.

exécuter le shell de script
Champ Taille du champ Décalage de champ
Beaucoup de champs, comme dans le format précédent 156 0
Tapez le drapeau 1 156
Champ similaire au format précédent 100 157
'ustar' Indicateur Ustar, puis NUL 6 257
'00' version Ustar 2 263
Nom d'utilisateur du propriétaire 32 265
Nom du groupe du propriétaire 32 297
Numéro majeur de l'appareil 8 329
Numéro mineur de l'appareil 8 337
Préfixe du nom de fichier 155 3. 4. 5

POSIX.1-2001/pax

Sun a proposé une technique pour ajouter des extensions à un format tar en 1997. Plus tard, elle a été approuvée pour la norme POSIX.1-2001. Le format est appelé format pax ou format tar étendu. Certaines balises sont spécifiées par la norme POSIX, notamment mtime, atime, linkpath, gname, uname, size, gid, uid et une définition de jeu de caractères pour les noms de groupe/utilisateur et les noms de chemin.

Implémentations clés de tar

Les implémentations clés sont mentionnées dans l'ordre d'origine :

    goudron solaris est fourni par défaut sur le système d'exploitation Solaris, basé sur l'actuel Unix V7. Tar GNU est une valeur par défaut sur presque toutes les distributions Linux. Il est basé sur une implémentation du domaine public pdtar qui a débuté en 1987. Les éditions récentes peuvent utiliser de nombreux formats, tels que GNU, pax, v7 et ustar. Tar FreeBSD est devenu un fichier tar par défaut sur presque tous les systèmes d'exploitation basés sur Berkeley Software Distribution, tels que Mac OS X. Goudron de Schily est historiquement important car quelques-unes de ses extensions étaient célèbres. Il a été publié pour la première fois en avril 1997. Fichier tar Python prend en charge deux ou plusieurs formats tar, tels que gnu, pax et ustar ; il peut lire mais pas créer les formats SunOS tar étendu et V7 ; pax est un format par défaut pour la création d'archives. Il est disponible pour les utilisateurs depuis 2003.

De plus, la plupart des implémentations cpio et pax peuvent créer et lire au moins deux types de fichiers tar.

Syntaxe de la commande tar :

 tar [options] [archive-file] [directory or file to be archived] 

Options dans la commande tar

Diverses options de la commande tar sont répertoriées ci-dessous :

    -c :Cette option est utilisée pour créer l'archive.-F:Cette option est utilisée pour créer une archive avec le nom du fichier fourni.-X:Cette option est utilisée pour extraire des archives.-dans:Il peut être utilisé pour ajouter une archive au fichier d'archive existant.-t :Il est utilisé pour afficher ou lister les fichiers dans le fichier archivé.-UN:Cette option est utilisée pour concaténer les fichiers d'archive.-dans:Il peut être utilisé pour afficher des informations détaillées.-j :Il est utilisé pour filtrer les fichiers tar d'archive à l'aide de tbzip.-Avec:Il s'agit d'un fichier zip et informe la commande tar qui crée un fichier tar à l'aide de gzip.-r :Cette option est utilisée pour mettre à jour et ajouter un répertoire ou un fichier dans un fichier .tar existant.-DANS:Cette option est utilisée pour vérifier le fichier d'archive.

Introduction au fichier d'archive

Le fichier d'archive peut être défini comme un fichier contenant plusieurs fichiers avec des métadonnées. Ces fichiers sont utilisés pour rassembler plusieurs fichiers de données dans un fichier individuel pour faciliter le stockage et la portabilité. Il peut également être utilisé pour compresser des fichiers afin de consommer moins d'espace de stockage.

Exemples de commande tar

Certains des exemples importants largement utilisés dans la commande tar sont les suivants :

1. Créer une archive tar non compressée avec l'option -cvf

Cette option crée un fichier tar appelé fichier.tar . C'est l'archive de chaque fichier .txt à l'intérieur monrép annuaire.

La commande est la suivante :

 $ tar cvf file.tar *.txt 

Commande Tar sous Linux

2. Extraction de fichiers via l'archive avec l'option -xvf

Cette option peut extraire des fichiers via des archives.

La commande est la suivante :

 $ tar xvf file.tar 

Commande Tar sous Linux

3. Compression gzip sur l'archive tar avec l'option -z

Cette option crée un fichier tar appelé fichier.tar.gz. C'est l'archive de chaque fichier .txt.

La commande est la suivante :

Rajan profond
 $ tar cvzf file.tar.gz *.txt 

Commande Tar sous Linux

4. Extraction de l'archive tar gzip avec l'option -xvzf

Cette option peut extraire les fichiers via les fichiers archivés file.tar.gz tar.

La commande est la suivante :

 $ tar xvzf file.tar.gz 

Commande Tar sous Linux

5. Création de fichiers tar compressés avec l'option -j

Cette option nous aidera à créer et compresser des fichiers d'archives. La décompression et la compression prennent plus de temps que gzip.

La commande est la suivante :

 $ tar cvfj file.tar.tbz hello1.txt 

Commande Tar sous Linux

6. Décompressez un répertoire ou un fichier spécifié sous Linux

Cette option est utilisée pour décompresser n'importe quel fichier dans notre répertoire actuel ou dans le répertoire spécifié avec l'option -C.

La commande est la suivante :

définir Java
 $ tar -xvf file.tar -C file's path in the directory 

Commande Tar sous Linux

Ou,

 $ tar -xvf file.tar 

Commande Tar sous Linux

7. Décompressez plusieurs fichiers .tar.tbz, .tar.gz, .tar sous Linux

Cette option nous aidera à propagé ou extrayez plusieurs fichiers de tar.bz2, tar.gz et d'un fichier d'archive tar.

L'exemple de cette option est le suivant :

 $ tar -jxvf file.tar.tbz 'hello1.txt' 

Commande Tar sous Linux

Ou,

 $ tar -zxvf file.tar.gz 'hello1.txt' 'hello2.txt' 

Commande Tar sous Linux

Ou,

 $ tar -xvf file.tar 'hello1.txt' 'hello2.txt' 

Commande Tar sous Linux

8. Vérifiez la taille du fichier tar.tbz, tar.gz, tar existant

La commande nous aidera à afficher la taille du fichier d'archive en kilo-octets (Ko) mentionnée ci-dessus.

La commande est la suivante :

 $ tar -czf - file2.tar.tbz | wc -c 

Ou,

 $ tar -czf - file1.tar.gz | wc -c 

Ou,

 $ tar -czf - file.tar | wc -c 

Commande Tar sous Linux

9. Mettez à jour le fichier tar existant

Sous Linux, la commande pour mettre à jour un fichier tar existant est la suivante :

 $ tar rvf file.tar *.txt 

10. Liste du contenu et description du fichier tar avec l'option tf

Cette option nous aidera à répertorier la liste complète du fichier d'archive. En outre, nous pouvons répertorier un contenu particulier dans n’importe quel fichier tar.

La commande est la suivante :

 $ tar tf file.tar 

Commande Tar sous Linux

11. Affichez l'archive avec l'option -tvf

Sous Linux, nous pouvons utiliser l'option -tvf pour afficher l'archive.

La commande est la suivante :

 $ tar -tvf file.tar 

Commande Tar sous Linux

12. Passez le nom du fichier comme argument pour rechercher un fichier tar

Cette option permet d'afficher les fichiers archivés avec leurs informations.

mathématiques aléatoires java

La commande est la suivante :

 $ tar tvf file.tar filename 

Commande Tar sous Linux

13. Utiliser pipe pour lancer la « commande grep » afin de rechercher ce que nous recherchons

Cette option nous aidera à répertorier uniquement l'image ou le texte mentionné dans poignée à travers des fichiers archivés.

La commande est la suivante :

 $ tar tvf file.tar | grep 'filename.file' 

Ou,

 $ tar tvf file.tar | grep 'text to search' 

Commande Tar sous Linux

Introduction aux caractères génériques

Alternativement, les caractères génériques sont appelés caractère générique ou caractère générique sous Linux. C'est un symbole utilisé pour représenter ou remplacer plusieurs caractères.

taille a-b

En règle générale, les caractères génériques sont soit un point d'interrogation (?) qui illustre un caractère individuel, soit un astérisque (*) qui illustre plusieurs caractères.

Exemple-

14. Rechercher une image au format .webp

Cela nous aidera à extraire uniquement les fichiers avec l'extension .webp de l'archive file.tar. L'option -wildcards indique à tar d'interpréter les caractères génériques dans le nom du fichier à extraire.

Le nom du fichier (*.webp) est placé entre guillemets simples pour protéger le caractère générique (*) contre une extension incorrecte par un shell.

La commande est la suivante :

 $ tar tvf file.tar --wildcards '*.webp' 

Commande Tar sous Linux

Remarque : dans la commande ci-dessus, le symbole « * » est appliqué à la position du nom du fichier pour prendre chaque fichier disponible dans ce répertoire spécifique.

15. Supprimer les fichiers de l'archive tar

Nous pouvons utiliser l'option --delete pour supprimer des fichiers et une archive tar.

La commande est la suivante :

 $ tar --delete -f archive.tar file_name 

Exemple:

 tar -delete -f file.tar hello1.txt 

Sortir:

Commande Tar sous Linux

bonjour1.txt le fichier a été supprimé de l'archive file.tar :

Commande Tar sous Linux