logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
doc:systeme:tar [22/04/2010 16:08]
smolski
doc:systeme:tar [05/11/2021 02:34]
TyZef [Illustration avec différentes pratiques]
Ligne 1: Ligne 1:
 +====== TAR ======
 +
 +  * Objet : La commande tar
 +  * Niveau requis :​{{tag>​débutant avisé}}
 +  * Commentaires : //Archiver ou désarchiver des répertoires et des fichiers// ​
 +  * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-)
 +  * Suivi : {{tag>​à-tester}}
 +    * Création par [[user>​mattux]] le  07/06/2007
 +    * Testé par .... le ....
 +  * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​id=2301 |C'est ici]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) 
 +
 +===== Présentation =====
 +
 +**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.
 +
 +Les commandes tar en détail :
 +[[doc:​systeme:​tar-commandes|Commandes tar pour débutant]]
 +
 +
 +
 +===== 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écé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)
 +
 +Pour info pour extraire les fichiers d'une archive tar, il est inutile de donner l'algo à utiliser pour
 +la décompression,​ pour n'​importe quel archive tar.
 +
 +== Exemple : ==
 +
 +<code user>tar xf archive.tar.<​extension></​code>​
 +où <​extension>​ peut-être, //gz, bz2, xz, Z… (liste non exhaustive)//​. \\
 +Ça marche pourvu que le programme qui permet la décompression soit installé (gzip pour gz, bzip2 pour bz2, xz pour xz…).
 +<note tip>Tar ne se base pas sur l'​extension il me semble mais sur l'​entête qui au tout début du fichier indique le type de compression utilisé.</​note>​
 +
 +//Voilà ma petite contribution.//​
 +
 +Merci à **enicar** et **Atys** sur le forum là :
 +  * https://​debian-facile.org/​viewtopic.php?​pid=243441#​p243441
 +
 +==== Compresser un fichier tar ====
 +
 +===Exemple ===
 +
 +Toujours avec la même commande on créera une archive de tout mon répertoire : /​home/​mattux/​opensuse
 +
 +<code user>cd /​home/​mattux/</​code>​
 +<code user>tar cvzf opensuse.tgz opensuse</​code>​
 +
 +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 :
 +
 +<code user>man tar</​code>​
 +
 +===== 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
 +
 +<code user>cd rep_dest</​code>​
 +
 +  * Utiliser TAR
 +
 +<code user>tar -C /​chemin/​rep_source -cvf - . | tar xvf -</​code>​
 +
 +==== Exclure la copie de fichiers ciblés ====
 +
 +Exclure tous les fichiers ''​*.bak''​ :
 +
 +<code user>
 +cd rep_dest</​code>​
 +<code user>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 user>
 +cd rep_dest</​code>​
 +<code user>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 :
 +
 +<file config fichiers.txt>​
 +admin.php
 +serge.txt
 +compte.doc
 +password.txt
 +extra
 +source
 +</​file>​
 +
 +=== Commande TAR ===
 +
 +Puis vous passez ce fichier à ''​tar''​ :
 +
 +<code user>
 +cd rep_dest</​code>​
 +<code user>tar -C /​chemin/​rep_source --exclude-from fichiers.txt -cvf  - . | tar xvf -
 +</​code>​
 +
 +
 +==== Problèmes ====
 +
 +Avec par exemple un fichier ''​ratatouille.tar.xz''​ vous rencontrez le problème suivant :
 +
 +<code user>​debian@facile:​~$ tar xzvf ratatouille.tar.xz
 +
 +gzip: stdin: not in gzip format
 +tar: Child returned status 1
 +tar: Error is not recoverable:​ exiting now</​code>​
 +
 +Le paquet [[https://​packages.debian.org/​bullseye/​file|file]] vous informe de ceci :
 +
 +<code user>​file ratatouille.tar.xz
 +ratatouille.tar.xz:​ XZ compressed data</​code>​
 +
 +vous pouvez alors installer le paquet suivant [[https://​packages.debian.org/​bullseye/​xz-utils|xz-utils]].
 +
 +Puis pour extraire votre fichier faire :
 +<code user>tar -xf ratatouille.tar.xz</​code>​
 +Ou-bien pour décompresser :
 +<code user>xz -d -v ratatouille.tar.xz</​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 user>
 +man tar</​code>​
 +
 +<code user>​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)
 +\\
 +https://​www.cyberciti.biz/​faq/​how-to-extract-tar-xz-files-in-linux-and-unzip-all-files/​ (en)
  
doc/systeme/tar.txt · Dernière modification: 05/11/2021 02:34 par TyZef

Pied de page des forums

Propulsé par FluxBB