GNU/Linux >> Tutoriels Linux >  >> Linux

15 La commande Tar dans Linux utilise avec des exemples

Tar est un excellent utilitaire utilisé pour collecter plusieurs fichiers dans une seule archive. Ce fichier est souvent appelé "tarball". Aujourd'hui, nous allons vous parler des différentes choses que vous pouvez faire avec les tarballs en utilisant le tar commande, avec des exemples pratiques.

Tar est principalement utilisé pour empaqueter des applications et leurs binaires pour une installation brute qui fonctionnerait sur n'importe quel système, plutôt que de baser des formats spécifiques comme les packages DEB, RPM ou AUR. A part ça, tar est également un format assez efficace pour créer des sauvegardes.

REMARQUE : Tous les -f les balises utilisées n'importe où sont nécessaires chaque fois que vous interagissez avec des "fichiers", ce qui est presque tous les cas.

Utilisation de la commande Tar sous Linux

1. –liste

Ce drapeau est utilisé pour lister les fichiers à l'intérieur d'une archive tar. L'argument requis est uniquement le nom de l'archive tar et (comme mentionné), le -f drapeau. La syntaxe standard ressemble à :

tar --list -f <Tarball name>

En forme courte :

tar tf <Tarball name>

2. –créer

L'indicateur –create est utilisé pour créer une nouvelle archive tar. Les arguments requis sont le nom de la (future) archive tar et les fichiers à inclure. Les noms de répertoires sont également acceptables comme argument. Le format standard est :

tar --create -f <Required tarball name> <File names>

Cela peut être utilisé sous une forme abrégée de la manière suivante :

tar cf <Required tarball name> <File names>

Créer d'autres formats d'archives

Il existe différents formats d'archivage inclus dans tar, qui sont utilisés pour la compression. Les formats que nous allons montrer sont les .tar.xz et .tar.gz formats.

Création d'un XZ (.tar.xz ) archiver

tar cfJ <Required tarball name> <File names>

Créer un GZip (.tar.gz ) archiver

tar cfz <Required tarball name> <File names>

Création d'une archive bzip2 (.tar.bz2)

tar cfj <Required tarball name> <File names>

3. –ajouter

L'indicateur –append est utilisé pour ajouter des fichiers à une archive tar déjà existante. La syntaxe est assez simple, c'est-à-dire :

tar --append -f <Tarball name> <Names of files to be added>

Plus court :

tar rf <Tarball name> <Names of files to be added>

4. –supprimer

Ceci est utilisé pour supprimer des fichiers d'une archive tar. La syntaxe requiert le nom de l'archive tar et le nom du fichier dans l'ordre suivant :

tar --delete -f <Name of tarball> <Names of files>

5. –diff

Le –diff flag trouve les différences entre une archive tar et certains fichiers que l'utilisateur doit spécifier. Par exemple, comme mentionné précédemment, tar est largement utilisé pour créer des sauvegardes. Donc, s'il existe une archive tar existante et que vous souhaitez vérifier s'il existe ou non des différences entre l'état actuel des fichiers et ceux qui sont déjà dans l'archive tar, vous pouvez utiliser –diff .

Exemple :

Dans cette situation, le fichier test dans l'archive test.tar est vide, mais celui en dehors de l'archive a le contenu comme indiqué. Remarquez les différences démontrées par tar .

Comme vous pouvez le voir ici, l'erreur affichée entre le test vide et le test non vide est "La taille diffère", mais même lorsque la taille est la même, une erreur s'affiche :

En conclusion, la syntaxe générale peut être représentée comme :

tar --diff -f <Name of tarball> <Names of files to be compared>

6. –mise à jour

Ce drapeau peut être utilisé pour mettre à jour un fichier spécifique dans l'archive tar. Si un fichier du même nom est placé dans cette commande, le fichier avec le nouveau contenu sera ajouté à la fin du fichier, plutôt que l'ancien étant remplacé par la dernière version. La capture d'écran ci-dessous décrit ceci :

Encore une fois, cela peut être utilisé dans le cas de faire des sauvegardes. La syntaxe générale devient :

tar --update -f <Tarball name> <Names of files to be updated>

Format plus court :

tar uf <Tarball name> <Names of files to be updated>

7. –extrait

C'est probablement le drapeau le plus utilisé de la commande tar. Il est utilisé pour extraire des fichiers d'une archive tar, et puisqu'il est ainsi utilisé, il a aussi beaucoup de configurations. Pour changer, les arguments à l'exception du nom de l'archive sont facultatifs. Si non spécifié, tar extraira tous les fichiers à l'intérieur de l'archive tar. Donc, la syntaxe pour extraire des fichiers spécifiques :

tar --extract -f <Tarball name> <File names>

Pour extraire tous les fichiers :

tar --extract -f <Tarball name>

Ou un format plus court :

tar xf <Tarball name> <Optional file names>

Extraire GZip (.tar.gz ) archives

tar zxf <Tarball name> <Optional file names>

Extraire XZ (.tar.xz ) archives tar

tar xf <Tarball name> <Optional file names>

Extraire des archives bzip2 (.tar.bz2)

tar xjf <Tarball name> <Optional file names>

Maintenant, après avoir traité les bases, nous pouvons approfondir certaines fonctionnalités de tar .

8. Écraser le contrôle

Il peut simplement arriver que les noms d'un ou plusieurs des fichiers extraits d'une archive tar coïncident avec le nom de fichiers déjà existants dans le répertoire de travail. Certaines mesures peuvent être prises pour faire ce que vous désirez lorsque cela se produit. Divers scénarios :

Pour écraser les fichiers

Le premier cas est que vous souhaitez remplacer les fichiers existant dans le répertoire. Pour vous en assurer, lancez la commande de la manière suivante :

tar --extract -f <Tarball name> <Optional file names> --overwrite

Pour ne pas écraser les fichiers

Cela n'écrasera pas les fichiers, indiquant que les fichiers existent déjà. La commande peut être émise de la manière suivante :

tar --extract -f <Tarball name> <Optional file names> -keep-old-files

Pour écraser uniquement les anciens fichiers

Ceci est particulièrement utile, car il ne protège que les fichiers les plus récents par rapport aux fichiers de l'archive. Par exemple, ici, test2 à l'intérieur de l'archive, le contenu a été modifié par rapport à test2 dans le répertoire :

Comme vous pouvez le voir, il est écrit "… est plus récent ou du même âge ' pour le reste des fichiers, mais pas test2 , ce qui signifie test2 Fut remplacé. Par conséquent, la structure de la commande est :

tar --extract -f <Tarball Name> <Optional file names> --keep-newer-files

9. –remove-fichiers

Cet indicateur peut être utilisé comme raccourci pour supprimer des fichiers du répertoire directement après leur archivage. C'est une commande assez simple, la syntaxe suit :

tar --create -f < Required tarball name> <File names> --remove-files

10. –exclure

L'indicateur –exclude peut être utilisé pour exclure certains fichiers de l'archivage. Le modèle doit être spécifié avant toute autre chose, et entre guillemets, comme utilisé dans la commande ci-dessous :

tar --exclude='PATTERN' --create -f <Tarball name required> <File names>

Exemple d'utilisation :

11. –to-command='COMMANDE'

La commande tar a sa fonction d'utiliser la sortie comme entrée pour une autre commande, c'est-à-dire la –to-command drapeau. Par exemple, je veux utiliser les noms des fichiers de test2.tar et créer un répertoire du même nom que celui des fichiers à l'intérieur de l'archive. Cela peut être fait comme :

tar xf test2.tar --to-command='mkdir $TAR_REALNAME'

C'est assez avancé. Le '$ ' est nécessaire pour faire référence à n'importe quelle variable système lors de l'utilisation de Bash. Le nom 'TAR_REALNAME ‘ est la variable utilisée pour faire référence au nom d'un seul fichier lors de l'utilisation de la commande –to-command drapeau dans tar . Il existe plusieurs variables de ce type, qui peuvent être trouvées dans le man pages de tar , ainsi que sur cette page Web.

12. Propriété des fichiers

La propriété des fichiers dans l'archive peut être configurée de différentes manières. Tout d'abord, pour créer une archive dans laquelle les fichiers sont attribués à un propriétaire spécifique, le drapeau –owner peut être utilisé. Exemple d'utilisation :

Comme on le voit, l'utilisateur 0 et le groupe 0 correspondent à l'utilisateur root . Racine (comme vous le savez probablement) est l'empereur suzerain du système. Vous pouvez trouver l'UID (ID utilisateur) et le GID (ID de groupe) des autres utilisateurs à l'aide de la commande id de la manière suivante :

id <username>

Maintenant pour extraire les fichiers tout en préservant les propriétaires du fichier :

tar xf <Tarball name> --same-owner

13. Solution de sauvegarde complète

Comme je l'ai déjà mentionné à plusieurs reprises, tar est tout à fait un bon programme de sauvegarde. Je vais vous parler d'autres drapeaux qui le rendent encore meilleur. Tout d'abord, il y a des choses que nous voulons inclure/exclure lors des sauvegardes. Incluez les fichiers vers lesquels les liens (liens symboliques) pointent. Excluez les fichiers de sauvegarde antérieurs et les répertoires VCS (principalement utiles pour les programmeurs). Il est également important de rester en dehors des répertoires dont vous effectuez une sauvegarde.

Par exemple, vous êtes dans le /home répertoire, et vous voulez faire une sauvegarde de l'utilisateur, testuser. La commande ressemblerait à :

sudo tar --exclude-backups --exclude-vcs --dereference --create -f backup.tar ./testuser
  • ‘sudo’ pour deux raisons :premièrement, que vous faites des choses dans le répertoire /home, ce qui nécessite des privilèges. Deuxièmement, si des liens symboliques pointent vers des fichiers hors des privilèges habituels de l'utilisateur, cela provoquera une erreur.
  • –exclure-sauvegardes et –exclude-vcs exclure les fichiers de sauvegarde et VCS respectivement.
  • –déréférencement fait du goudron suivez les liens symboliques vers les données vers lesquelles ils pointent.

14. Heure modifiée

Il y a beaucoup de choses qui peuvent être faites avec l'heure de modification d'un fichier. Tout d'abord, pour changer la date de modification lors de l'archivage d'un fichier, nous pouvons utiliser le –mtime drapeau. Syntaxe de base :

tar --create -f <Required tarball name> <File names> --mtime=YYYY-MM-DD

Comme antidote à cela, le drapeau -m peut être utilisé pour obtenir la date modifiée inchangée. Pour l'utiliser :

tar xf <Tarball name> -m

N'agir que sur les fichiers modifiés après une date précise

Cette forme de commande peut être utilisée pour agir sur des fichiers qui ont été modifiés après une date spécifique. La commande ressemble à :

tar xf <Tarball name> --newer-mtime=YYYY-MM-DD

L'exemple d'utilisation est illustré ci-dessous.

15. Autorisations

Enfin, les permissions peuvent être assez bien configurées dans le cas de tar des dossiers. Il existe deux variations importantes :

Conserver les autorisations d'origine

Cela peut être utilisé pour conserver les autorisations pour le fichier, comme mentionné dans l'archive après avoir été extrait. Ceci est réalisé grâce à une telle commande :

tar xf <Tarball name> --preserve-permissions

Modifier l'autorisation comme valeur par défaut

Deuxièmement, les autorisations peuvent être modifiées en tant que umask par défaut valeurs. La valeur par défaut varie selon les systèmes. Pour cela, saisissez la commande suivante :

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

Conclusion

La commande tar est bien plus que ce qu'elle semble. Il a un large éventail d'utilisations, allant de l'empaquetage d'applications à la création de sauvegardes, en passant par le stockage de systèmes d'exploitation entiers. Nous espérons que le didacticiel vous a aidé à apprendre quelque chose de nouveau et de passionnant sur tar . Pour toute question, n'hésitez pas à utiliser la section des commentaires.


Linux
  1. Commande Linux wc avec exemples

  2. Commande Linux Tee avec exemples

  3. Commande principale Linux avec exemples

  4. Commande JQ sous Linux avec exemples

  5. Exemples de commandes tar sous Linux

Commande Linux ip avec exemples

Commande Tr sous Linux avec des exemples

15 Commande Linux ps avec exemples

Commande de CD Linux avec exemples

Commande Linux watch avec exemples

Commande IP Linux avec exemples