Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:systeme:tar [10/06/2007 12:20] 127.0.0.1 édition externe |
doc:systeme:tar [21/03/2012 18:13] smolski |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== La commande TAR - DÉBUTANT AVISÉ ====== | ||
+ | |||
+ | **tar** c'est le couteau suisse de l'archivage et c'était l'outil de base sur les unix d'autrefois. (Haricophile dixit) :-D \\ | ||
+ | La commande tar permet d'archiver ou de désarchiver des répertoires et des fichiers de façon optimale. \\ | ||
+ | Cette commande vous allez l'utiliser souvent, n'hésitez pas à revenir dessus en cas d'oubli. | ||
+ | |||
+ | ===== Débutant ===== | ||
+ | |||
+ | Les pages de référence pour débuter l'utilisation du terminal : | ||
+ | |||
+ | * [[manuel:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
+ | |||
+ | ===== Syntaxe ===== | ||
+ | |||
+ | ==== Décompresser un fichier tar : ==== | ||
+ | === Les archives types gz === | ||
+ | |||
+ | tar xzf nom_du_fichier.tar.gz | ||
+ | |||
+ | Cette commande décompacte un fichier au format .tar.gz ou .tgz ; vous rencontrerez régulièrement ce genre de fichier. \\ | ||
+ | Le format .tar.gz indique que le fichier est en réalité une archive (.tar), c'est-à-dire que le fichier contient en réalité plusieurs fichiers, et qu'il est compacté (.gz). \\ | ||
+ | Cette commande peut être ainsi comprise : | ||
+ | |||
+ | x: permet d'extraire certains fichiers d'une archive | ||
+ | z: décompacte l'archive avec l'utilitaire gzip | ||
+ | f: extrait un fichier donné (ici le fichier est nom_du_fichier.tar.gz) | ||
+ | |||
+ | === Les archives types bz2 === | ||
+ | |||
+ | tar xjf nom_du_fichier.tar.gz | ||
+ | |||
+ | Cette commande décompacte un fichier au format .tar.bz2 ou .tbz ; Ce type de fichier est moins courant que le présédent. \\ | ||
+ | Le format .tar.bz2 indique que le fichier est en réalité une archive (.tar), c'est-à-dire que le fichier contient en réalité plusieurs fichiers, et qu'il est compacté (.bz2). \\ | ||
+ | Cette commande peut être ainsi comprise : | ||
+ | |||
+ | x: permet d'extraire certains fichiers d'une archive | ||
+ | j: décompacte l'archive avec l'utilitaire bzip2 | ||
+ | f: extrait un fichier donné (ici le fichier est nom_du_fichier.tar.bz2) | ||
+ | ==== Compresser un fichier tar : ==== | ||
+ | |||
+ | Toujours avec la même commande on créera une archive de tout mon répertoire : /home/mattux/opensuse | ||
+ | |||
+ | cd /home/mattux/ | ||
+ | tar cvzf opensuse.tgz opensuse | ||
+ | |||
+ | Avec cette commande mon répertoire opensuse, avec les sous répertoires et tous les fichiers, se trouveront rassemblés dans UN fichier archive : opensuse.tgz | ||
+ | |||
+ | ===== Les Options ===== | ||
+ | |||
+ | On va expliquer les options : | ||
+ | |||
+ | c: indique à tar de créer une archive | ||
+ | z: indique à tar de compacter une archive avec l'utilitaire gzip (-j pour bzip2) | ||
+ | v: est le mode "verbose", qui affiche les noms des fichiers tel qu'ils ont été archivés à l'origine | ||
+ | t: affiche la liste du contenu de l'archive sans l'extraire ( à la place de -x ou -c) | ||
+ | p: préserver les permissions des fichiers | ||
+ | |||
+ | ===== Utilisation - Sauvegarde ===== | ||
+ | |||
+ | Si on souhaite effectuer sa sauvegarde sur un lecteur de bande (lecture séquentielle) ''/dev/st0'' | ||
+ | |||
+ | tar -cvf /dev/st0 /repertoire_à_sauver # il y a rembobinage de la cassette après l'enregistrement | ||
+ | tar -cvf /dev/nst0 /repertoire_à_sauver # le n indique qu'il n'y a pas de rembobinage après l'enregistrement | ||
+ | |||
+ | c: pour créer l'archive | ||
+ | v: mode verbeux pour afficher les détails | ||
+ | f: indique la destination (un périphérique ou un fichier) | ||
+ | |||
+ | Pour connaitre les autres options, je vous recommande d’ouvrir Konqueror et de taper dans l’url “#commande”. \\ | ||
+ | N’oubliez pas le dièse (#) sans espace. | ||
+ | |||
+ | Vous pouvez aussi obtenir, à tout moment, en console la page de ''man'' de la commande avec : | ||
+ | |||
+ | $ man tar | ||
+ | |||
+ | ===== Utilisation - Copie ===== | ||
+ | |||
+ | Vous devez copier le contenu d'un répertoire vers un autre. \\ | ||
+ | Bien que cela soit possible via la commande [[CP]], cela peut se compliquer si vous voulez exclure certains fichiers, préserver les droits et les liens, être sûr d'avoir joint les fichiers cachés, ... | ||
+ | |||
+ | Pour cela utilisez la commande ''tar'' bien plus rapide que la commande ''cp''. | ||
+ | |||
+ | ===== Illustration avec différentes pratiques ===== | ||
+ | |||
+ | ==== Copier tout le contenu d'un répertoire ==== | ||
+ | |||
+ | Copier le contenu du répertoire ''rep_source'' vers le répertoire ''rep_dest'' : | ||
+ | |||
+ | * Se placer dans le répertoire de destination | ||
+ | |||
+ | cd rep_dest | ||
+ | |||
+ | * Utiliser TAR | ||
+ | |||
+ | tar -C /chemin/rep_source -cvf - . | tar xvf - | ||
+ | |||
+ | ==== Exclure la copie de fichiers ciblés ==== | ||
+ | |||
+ | Exclure tous les fichiers ''*.bak'' : | ||
+ | |||
+ | <code> | ||
+ | cd rep_dest | ||
+ | tar -C /chemin/rep_source --exclude *.bak -cvf - . | tar xvf - | ||
+ | </code> | ||
+ | |||
+ | ==== Exclure la copie de répertoires ciblés ==== | ||
+ | |||
+ | Exclure les répertoires ''source'' et ''extra'' : | ||
+ | |||
+ | <code> | ||
+ | cd rep_dest | ||
+ | tar -C /chemin/rep_source --exclude source --exclude extra -cvf - . | tar xvf - | ||
+ | </code> | ||
+ | |||
+ | ==== Exclure avec une liste ==== | ||
+ | |||
+ | Exclure une liste de fichiers et de répertoires. | ||
+ | |||
+ | === Créer le fichier d'exclusion === | ||
+ | |||
+ | Inscrivez dans un fichier, ''fichiers.txt'' par exemple, la liste des fichiers que vous ne souhaitez pas copier : | ||
+ | |||
+ | <code> | ||
+ | admin.php | ||
+ | serge.txt | ||
+ | compte.doc | ||
+ | password.txt | ||
+ | extra | ||
+ | source | ||
+ | </code> | ||
+ | |||
+ | === Commande TAR === | ||
+ | |||
+ | Puis vous passez ce fichier à ''tar'' : | ||
+ | |||
+ | <code> | ||
+ | cd rep_dest | ||
+ | tar -C /chemin/rep_source --exclude-from fichiers.txt -cvf - . | tar xvf - | ||
+ | </code> | ||
+ | |||
+ | ===== Conclusion ===== | ||
+ | |||
+ | ''Tar'' vous permet bien d'autres subtilités impossibles à réaliser avec ''cp''. Voir l'aide de la page de manuel de ''tar'' : | ||
+ | |||
+ | <code> | ||
+ | man tar</code> | ||
+ | |||
+ | <code>info tar | ||
+ | </code> | ||
+ | |||
+ | ===== Lien : ===== | ||
+ | |||
+ | [[http://www.gnu.org/software/tar/manual/tar.html|manuel complet]] (en) | ||
+ | |||
+ | Remerciements : \\ | ||
+ | http://wiki.slackware-fr.org/administration:trucs:copier_un_repertoire_avec_tar#copier_un_repertoire_avec_tar (fr) | ||