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 | ||
doc:systeme:tar [28/03/2012 22:36] smolski |
doc:systeme:tar [05/11/2021 02:34] (Version actuelle) TyZef [Illustration avec différentes pratiques] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== La commande TAR - DÉBUTANT AVISÉ ====== | + | ====== 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 \\ | **tar** c'est le couteau suisse de l'archivage et c'était l'outil de base sur les unix d'autrefois. (Haricophile dixit) :-D \\ | ||
Ligne 5: | Ligne 16: | ||
Cette commande vous allez l'utiliser souvent, n'hésitez pas à revenir dessus en cas d'oubli. | Cette commande vous allez l'utiliser souvent, n'hésitez pas à revenir dessus en cas d'oubli. | ||
- | ===== Débutant ===== | + | Les commandes tar en détail : |
+ | [[doc:systeme:tar-commandes|Commandes tar pour 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 ===== | ===== Syntaxe ===== | ||
Ligne 30: | Ligne 40: | ||
tar xjf nom_du_fichier.tar.gz | 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. \\ | + | 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). \\ | 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 : | Cette commande peut être ainsi comprise : | ||
Ligne 37: | Ligne 47: | ||
j: décompacte l'archive avec l'utilitaire bzip2 | j: décompacte l'archive avec l'utilitaire bzip2 | ||
f: extrait un fichier donné (ici le fichier est nom_du_fichier.tar.bz2) | 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 ==== | ==== Compresser un fichier tar ==== | ||
+ | |||
+ | ===Exemple === | ||
Toujours avec la même commande on créera une archive de tout mon répertoire : /home/mattux/opensuse | Toujours avec la même commande on créera une archive de tout mon répertoire : /home/mattux/opensuse | ||
- | cd /home/mattux/ | + | <code user>cd /home/mattux/</code> |
- | tar cvzf opensuse.tgz opensuse | + | <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 | 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 | ||
- | ==== Compresser avec exclusion ==== | ||
- | |||
- | Si vous avez un fichier comportant une grande quantité de d'image.jpg qui l'allourdissent sans avoir besoin de les mettre dans l'archive, tapez : | ||
- | <code bash> | ||
- | tar czf ton_archive.tar.gz ton-repertoire --exclude="*.jpg"</code> | ||
- | //Malin qu'il est le //**captnfab**// qui m'en a refilé la combine. Yep !// :-D | ||
===== Les Options ===== | ===== Les Options ===== | ||
Ligne 80: | Ligne 102: | ||
Vous pouvez aussi obtenir, à tout moment, en console la page de ''man'' de la commande avec : | Vous pouvez aussi obtenir, à tout moment, en console la page de ''man'' de la commande avec : | ||
- | $ man tar | + | <code user>man tar</code> |
===== Utilisation - Copie ===== | ===== Utilisation - Copie ===== | ||
Ligne 97: | Ligne 119: | ||
* Se placer dans le répertoire de destination | * Se placer dans le répertoire de destination | ||
- | cd rep_dest | + | <code user>cd rep_dest</code> |
* Utiliser TAR | * Utiliser TAR | ||
- | tar -C /chemin/rep_source -cvf - . | tar xvf - | + | <code user>tar -C /chemin/rep_source -cvf - . | tar xvf -</code> |
==== Exclure la copie de fichiers ciblés ==== | ==== Exclure la copie de fichiers ciblés ==== | ||
Ligne 107: | Ligne 129: | ||
Exclure tous les fichiers ''*.bak'' : | Exclure tous les fichiers ''*.bak'' : | ||
- | <code> | + | <code user> |
- | cd rep_dest | + | cd rep_dest</code> |
- | tar -C /chemin/rep_source --exclude *.bak -cvf - . | tar xvf - | + | <code user>tar -C /chemin/rep_source --exclude *.bak -cvf - . | tar xvf - |
</code> | </code> | ||
Ligne 116: | Ligne 138: | ||
Exclure les répertoires ''source'' et ''extra'' : | Exclure les répertoires ''source'' et ''extra'' : | ||
- | <code> | + | <code user> |
- | cd rep_dest | + | cd rep_dest</code> |
- | tar -C /chemin/rep_source --exclude source --exclude extra -cvf - . | tar xvf - | + | <code user>tar -C /chemin/rep_source --exclude source --exclude extra -cvf - . | tar xvf - |
</code> | </code> | ||
Ligne 129: | Ligne 151: | ||
Inscrivez dans un fichier, ''fichiers.txt'' par exemple, la liste des fichiers que vous ne souhaitez pas copier : | Inscrivez dans un fichier, ''fichiers.txt'' par exemple, la liste des fichiers que vous ne souhaitez pas copier : | ||
- | <code> | + | <file config fichiers.txt> |
admin.php | admin.php | ||
serge.txt | serge.txt | ||
Ligne 136: | Ligne 158: | ||
extra | extra | ||
source | source | ||
- | </code> | + | </file> |
=== Commande TAR === | === Commande TAR === | ||
Ligne 142: | Ligne 164: | ||
Puis vous passez ce fichier à ''tar'' : | Puis vous passez ce fichier à ''tar'' : | ||
- | <code> | + | <code user> |
- | cd rep_dest | + | cd rep_dest</code> |
- | tar -C /chemin/rep_source --exclude-from fichiers.txt -cvf - . | tar xvf - | + | <code user>tar -C /chemin/rep_source --exclude-from fichiers.txt -cvf - . | tar xvf - |
</code> | </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 ===== | ===== Conclusion ===== | ||
Ligne 151: | Ligne 196: | ||
''Tar'' vous permet bien d'autres subtilités impossibles à réaliser avec ''cp''. Voir l'aide de la page de manuel de ''tar'' : | ''Tar'' vous permet bien d'autres subtilités impossibles à réaliser avec ''cp''. Voir l'aide de la page de manuel de ''tar'' : | ||
- | <code> | + | <code user> |
man tar</code> | man tar</code> | ||
- | <code>info tar | + | <code user>info tar |
</code> | </code> | ||
Ligne 163: | Ligne 208: | ||
Remerciements : \\ | Remerciements : \\ | ||
http://wiki.slackware-fr.org/administration:trucs:copier_un_repertoire_avec_tar#copier_un_repertoire_avec_tar (fr) | 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) | ||