Stations de travail en ligne OnWorks Linux et Windows

Logo

Hébergement gratuit en ligne pour les postes de travail

<Précédent | Table des matières | Suivant>

goudron

Dans le monde du logiciel de type Unix, le goudron est l'outil classique d'archivage de fichiers.


Son nom, abréviation de archive sur bande, révèle ses racines en tant qu'outil de création de bandes de sauvegarde. Bien qu'il soit toujours utilisé pour cette tâche traditionnelle, il convient également à d'autres périphériques de stockage. Nous voyons souvent des noms de fichiers qui se terminent par l'extension .le goudron or . Tgz, qui indiquent respectivement une archive tar « simple » et une archive gzippée. Une archive tar peut consister en un groupe de fichiers séparés, une ou plusieurs hiérarchies de répertoires, ou un mélange des deux. La syntaxe de commande fonctionne comme ceci :

goudron mode[Options] chemin d'accès

De mode est l'un des modes de fonctionnement suivants (seule une liste partielle est affichée ici ; voir le goudron page de manuel pour une liste complète):


Tableau 18-2 : Modes de goudron


Description des modes

Description des modes

c Créez une archive à partir d'une liste de fichiers et/ou de répertoires.


image

x Extraire une archive.


image

r Ajoute les chemins d'accès spécifiés à la fin d'une archive.


image

t Répertorier le contenu d'une archive.


image


tar utilise une façon un peu étrange d'exprimer les options, nous aurons donc besoin de quelques exemples pour montrer comment cela fonctionne. Tout d'abord, recréons notre terrain de jeu du chapitre précédent :



[moi@linuxbox ~]$ mkdir -p aire de jeux/dir-{001..100}

[moi@linuxbox ~]$ touchez aire de jeux/dir-{001..100}/file-{A..Z}

[moi@linuxbox ~]$ mkdir -p aire de jeux/dir-{001..100}

[moi@linuxbox ~]$ touchez aire de jeux/dir-{001..100}/file-{A..Z}


Ensuite, créons une archive tar de l'ensemble du terrain de jeu :



[moi@linuxbox ~]$ tar cf aire de jeux.tar aire de jeux

[moi@linuxbox ~]$ tar cf aire de jeux.tar aire de jeux


Cette commande crée une archive tar nommée aire de jeux.tar qui contient l'intégralité de la hiérarchie des répertoires de l'aire de jeux. On voit que le mode et le f option, qui est utilisée pour spécifier le nom du goudron archive, peuvent être réunis et ne nécessitent pas de tiret de début. Notez cependant que le mode doit toujours être spécifié en premier, avant toute autre option.

Pour lister le contenu de l'archive, nous pouvons faire ceci :


[moi@linuxbox ~]$ tar tf aire de jeux.tar

[moi@linuxbox ~]$ tar tf aire de jeux.tar


Pour une liste plus détaillée, nous pouvons ajouter le v option (verbeuse) :


[moi@linuxbox ~]$ tar tvf aire de jeux.tar

[moi@linuxbox ~]$ tar tvf aire de jeux.tar


Maintenant, extrayons le terrain de jeu dans un nouvel emplacement. Nous allons le faire en créant un nouveau répertoire nommé foo, en changeant de répertoire et en extrayant l'archive tar :


[moi@linuxbox ~]$ mkdir foo

[moi@linuxbox ~]$ cd truc

[moi@linuxbox foo]$ tar xf ../aire de jeux.tar

[moi@linuxbox foo]$ ls

cour de récréation

[moi@linuxbox ~]$ mkdir foo

[moi@linuxbox ~]$ cd truc

[moi@linuxbox foo]$ tar xf ../aire de jeux.tar

[moi@linuxbox foo]$ ls

cour de récréation


Si nous examinons le contenu de ~/foo/terrain de jeu, nous voyons que l'archive a été installée avec succès, créant une reproduction précise des fichiers originaux. Il y a une mise en garde, cependant : à moins que vous n'opérez en tant que superutilisateur, les fichiers et répertoires extraits des archives appartiennent à l'utilisateur effectuant la restauration, plutôt qu'au propriétaire d'origine.

Un autre comportement intéressant de goudron est la façon dont il gère les noms de chemin dans les archives. La valeur par défaut des chemins d'accès est relative plutôt qu'absolue. goudron le fait en supprimant simplement toute barre oblique au début du nom de chemin lors de la création de l'archive. Pour démontrer, nous allons recréer notre archive, en spécifiant cette fois un chemin d'accès absolu :



[moi@linuxbox foo]$ cd

[moi@linuxbox ~]$ tar cf aire de jeux2.tar ~/aire de jeux

[moi@linuxbox foo]$ cd

[moi@linuxbox ~]$ tar cf aire de jeux2.tar ~/aire de jeux


Rappelez-vous, ~/aire de jeux va s'étendre dans /accueil/moi/aire de jeux lorsque nous appuyons sur la touche Entrée, nous obtiendrons donc un chemin d'accès absolu pour notre démonstration. Ensuite, nous allons extraire l'archive comme avant et regarder ce qui se passe :



[moi@linuxbox ~]$ cd truc

[moi@linuxbox foo]$ tar xf ../playground2.tar

[moi@linuxbox foo]$ ls

aire de jeux à domicile [moi@linuxbox foo]$ Je suis à la maison

[moi@linuxbox ~]$ cd truc

[moi@linuxbox foo]$ tar xf ../playground2.tar

[moi@linuxbox foo]$ ls

aire de jeux à domicile [moi@linuxbox foo]$ Je suis à la maison


me

[moi@linuxbox foo]$ Je suis à la maison

cour de récréation

me

[moi@linuxbox foo]$ Je suis à la maison

cour de récréation


Ici, nous pouvons voir que lorsque nous avons extrait notre deuxième archive, il a recréé le répertoire maison/moi/aire de jeux par rapport à notre répertoire de travail actuel, ~/toto, pas par rapport au répertoire racine, comme cela aurait été le cas avec un nom de chemin absolu. Cela peut sembler une façon étrange de fonctionner, mais c'est en fait plus utile de cette façon, car cela nous permet d'extraire des archives vers n'importe quel emplacement plutôt que d'être obligé de les extraire vers leurs emplacements d'origine. Répéter l'exercice avec l'inclusion de l'option verbeuse (v) donnera une image plus claire de ce qui se passe.

Considérons un exemple hypothétique, mais pratique, de goudron en action. Imaginez que nous voulons copier le répertoire personnel et son contenu d'un système à un autre et que nous ayons un grand disque dur USB que nous pouvons utiliser pour le transfert. Sur notre système Linux moderne, le lecteur est monté « automatiquement » dans le /moitié annuaire. Imaginons également que le disque porte le nom de volume Gros Disque quand on l'attache. Pour créer l'archive tar, nous pouvons procéder comme suit :



[moi@linuxbox ~]$ sudo tar cf /media/BigDisk/home.tar /home

[moi@linuxbox ~]$ sudo tar cf /media/BigDisk/home.tar /home


Une fois le fichier tar écrit, nous démontons le lecteur et le connectons au deuxième ordinateur. Encore une fois, il est monté à /médias/BigDisk. Pour extraire l'archive, nous procédons comme suit :


[moi@linuxbox2 ~]$ cd /

[moi@linuxbox2 /]$ sudo tar xf /media/BigDisk/home.tar

[moi@linuxbox2 ~]$ cd /

[moi@linuxbox2 /]$ sudo tar xf /media/BigDisk/home.tar


Ce qui est important de voir ici, c'est que nous devons d'abord changer de répertoire pour /, de sorte que l'extraction soit relative au répertoire racine, puisque tous les chemins d'accès dans l'archive sont relatifs.

Lors de l'extraction d'une archive, il est possible de limiter ce qui est extrait de l'archive. Par exemple, si nous voulions extraire un seul fichier d'une archive, cela pourrait être fait comme ceci :



goudron xf archive.tar chemin d'accès

goudron xf archive.tar chemin d'accès


En ajoutant la fin chemin d'accès à la commande, goudron restaurera uniquement le fichier spécifié. Plusieurs chemins d'accès peuvent être spécifiés. Notez que le chemin d'accès doit être le lien complet et exact.


chemin d'accès tif tel qu'il est stocké dans l'archive. Lors de la spécification des noms de chemin, les caractères génériques ne sont normalement pas pris en charge ; cependant, la version GNU de goudron (qui est la version la plus souvent trouvée dans les distributions Linux) les prend en charge avec le --caractères génériques option. Voici un exemple utilisant notre précédent aire de jeux.tar fichier:


[moi@linuxbox ~]$ cd truc

[moi@linuxbox foo]$ tar xf ../playground2.tar --wildcards 'home/me/playground/dir-*/file-A'

[moi@linuxbox ~]$ cd truc

[moi@linuxbox foo]$ tar xf ../playground2.tar --wildcards 'home/me/playground/dir-*/file-A'


Cette commande extraira uniquement les fichiers correspondant au nom de chemin spécifié, y compris le caractère générique rép-*.

tar est souvent utilisé en conjonction avec find pour produire des archives. Dans cet exemple, nous allons utiliser find pour produire un ensemble de fichiers à inclure dans une archive :


[moi@linuxbox ~]$ find aire de jeux -name 'fichier-A' -exec tar rf aire de jeux.tar '{}' '+'

[moi@linuxbox ~]$ find aire de jeux -name 'fichier-A' -exec tar rf aire de jeux.tar '{}' '+'


Ici nous utilisons trouver pour faire correspondre tous les fichiers dans cour de récréation nommé déposer un puis, en utilisant le Exec- action, nous invoquons goudron en mode ajout (r) pour ajouter les fichiers correspondants à l'archive aire de jeux.tar.

En utilisant goudron comprenant trouver est un bon moyen de créer sauvegardes incrémentielles d'une arborescence de répertoires ou d'un système entier. En utilisant trouver pour faire correspondre les fichiers plus récents qu'un fichier d'horodatage, nous pourrions créer une archive qui ne contient que des fichiers plus récents que la dernière archive, en supposant que le fichier d'horodatage est mis à jour juste après la création de chaque archive.

tar peut également utiliser à la fois l'entrée et la sortie standard. Voici un exemple complet :



[moi@linuxbox foo]$ cd

[moi@linuxbox ~]$ find aire de jeux -nom 'fichier-A' | tar cf - --files- from=- | gzip > aire de jeux.tgz

[moi@linuxbox foo]$ cd

[moi@linuxbox ~]$ find aire de jeux -nom 'fichier-A' | tar cf - --files- from=- | gzip > aire de jeux.tgz


Dans cet exemple, nous avons utilisé le trouver programme pour produire une liste de fichiers correspondants et les rediriger dans goudron. Si le nom de fichier « - » est spécifié, il est considéré comme une entrée ou une sortie standard, selon les besoins. (Au fait, cette convention d'utilisation de « - » pour représenter l'entrée/la sortie standard est également utilisée par un certain nombre d'autres programmes). Les --files-de option (qui peut également être spécifiée comme -T) cause goudron lire sa liste de chemins d'accès à partir d'un fichier plutôt


que la ligne de commande. Enfin, l'archive produite par goudron est canalisé dans gzip pour créer l'archive compressée aire de jeux.tgzL’ . Tgz L'extension est l'extension conventionnelle donnée aux fichiers tar compressés avec gzip. L'extension .tar.gz est aussi parfois utilisé.

Alors que nous avons utilisé le gzip programme en externe pour produire notre archive compressée, des versions modernes de GNU goudron prend en charge la compression gzip et bzip2 directement avec l'utilisation du z et les j options, respectivement. En utilisant notre exemple précédent comme base, nous pouvons le simplifier de cette façon :



[moi@linuxbox ~]$ find aire de jeux -nom 'fichier-A' | goudron czf aire de jeux.tgz -T -

[moi@linuxbox ~]$ find aire de jeux -nom 'fichier-A' | goudron czf aire de jeux.tgz -T -


Si nous avions voulu créer une archive compressée bzip2 à la place, nous aurions pu faire ceci :



[moi@linuxbox ~]$ find aire de jeux -nom 'fichier-A' | goudron cjf aire de jeux.tbz -T -

[moi@linuxbox ~]$ find aire de jeux -nom 'fichier-A' | goudron cjf aire de jeux.tbz -T -


En changeant simplement l'option de compression de z à j (et en changeant l'extension du fichier de sortie en .tbz pour indiquer un fichier compressé bzip2) nous avons activé la compression bzip2.

Une autre utilisation intéressante de l'entrée et de la sortie standard avec le goudron La commande implique le transfert de fichiers entre les systèmes sur un réseau. Imaginez que nous ayons deux machines exécutant un système de type Unix équipé de goudron et les ssh. Dans un tel scénario, nous pourrions transférer un répertoire d'un système distant (nommé système-distant pour cet exemple) à notre système local :



[moi@linuxbox ~]$ trucs à distance mkdir

[moi@linuxbox ~]$ cd télécommande-trucs

[me@linuxbox remote-trucs]$ ssh remote-sys 'tar cf - Documents' | goudron xf -

Mot de passe de me@remote-sys : [me@linuxbox remote-stuff]$ ls DOCUMENTS

[moi@linuxbox ~]$ trucs à distance mkdir

[moi@linuxbox ~]$ cd télécommande-trucs

[me@linuxbox remote-trucs]$ ssh remote-sys 'tar cf - Documents' | goudron xf -

Mot de passe de me@remote-sys : [me@linuxbox remote-stuff]$ ls DOCUMENTS


Ici, nous avons pu copier un répertoire nommé DOCUMENTS du système distant remote-sys dans un répertoire dans le répertoire nommé trucs à distance sur le système local. Comment avons-nous fait cela? Tout d'abord, nous avons lancé le goudron programme sur le système distant à l'aide ssh. Vous vous souviendrez que ssh nous permet d'exécuter un programme à distance sur un ordinateur en réseau et de « voir » les résultats sur le système local-le pro-


duc sur le système distant est envoyé au système local pour visualisation. Nous pouvons en profiter en ayant goudron créer une archive (le c mode) et l'envoyer vers la sortie standard, plutôt qu'un fichier (le f option avec l'argument tiret), transportant ainsi l'archive sur le tunnel chiffré fourni par ssh au système local. Sur le système local, nous exécutons goudron et lui faire étendre une archive (le x mode) alimenté par l'entrée standard (encore une fois, le f option avec l'argument tiret).


Meilleur système d'exploitation Cloud Computing chez OnWorks :