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 [21/04/2015 17:36] milou [Débutant] |
doc:systeme:tar [05/11/2021 02:34] (Version actuelle) TyZef [Illustration avec différentes pratiques] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== La commande TAR ====== | + | ====== TAR ====== |
- | * Objet : La commande tar, présentation , utilisation | + | * Objet : La commande tar |
* Niveau requis :{{tag>débutant avisé}} | * Niveau requis :{{tag>débutant avisé}} | ||
* Commentaires : //Archiver ou désarchiver des répertoires et des fichiers// | * Commentaires : //Archiver ou désarchiver des répertoires et des fichiers// | ||
Ligne 15: | Ligne 15: | ||
La commande tar permet d'archiver ou de désarchiver des répertoires et des fichiers de façon optimale. \\ | 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. | 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]] | ||
Ligne 37: | 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 44: | 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 | ||
Ligne 81: | 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 98: | 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 108: | 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 117: | 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 130: | 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 137: | Ligne 158: | ||
extra | extra | ||
source | source | ||
- | </code> | + | </file> |
=== Commande TAR === | === Commande TAR === | ||
Ligne 143: | 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 152: | 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 164: | 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) | ||