Posez votre question Signaler

Petite question sur tar

lili42 - Dernière réponse le 27 mars 2005 à 18:21
salut,
je cherche comment faire pour ajouter des fichiers/dossiers à une archive tar existant, mais en les placant dans un répertoire précis de l'archive.
j'ai epluché le man mais j'ai rien trouvé là-dessu.
merci d'avance pour votre aide.
Lire la suite 

Petite question sur tar »

Suggestions
4 réponses
Réponse
+0
moins plus
C'est assez facile avec l'option "r" pour ajouter. Pour le repertoire precis c'est le repertoire original ou les fichiers se trouvent et l'endroit ou tu es pendant l'appel de la commande tar qui comptent!

Par exemple supposons tu as un repertoire "toto" avec de fichier *.c et *.h la dedans.
D'abord du cree l'archive ou tu mets les *.c avec:
tar cvf archive.tar toto/*.c

Maintenant tu veux ajouter les autres fichier *.h. Pour ca tu fais:
tar rvf archive.tar toto/*.h

et ca sera aussi dans toto/... dans l'archive.

Mais supposons au lieu de ca tu veux separer les *.h dans un autre repertoire dans le tar, disons "toto_bis". Dans ce cas il faut preparer sur ton disque dur dans un repertoire quelconque le sous-repertoire "toto_bis" et tu dois y copier les *.h, par exemple tu peux le faire dans le repertoire temporaire:
mkdir /tmp/toto_bis
cp toto/*.h /tmp/toto_bis
cd /tmp
tar rvf /repertoire_initial/archive.tar toto_bis/*.h

ici /repertoire_initiale/ est le repertoire initial ou tu etais au debut et ou il y a le sous-repertoire toto et l'archive a creer.

Donc pour placer de fichiers dans un sous-repertoire specifique dans le tar il faut fournir la meme structure de sous-repertoire quelque part sur ton disque dur (dans ton home ou /tmp). Apres il faut aller avec "cd" au bon endroit ou la structure de sous-repertoires commence (la tete de l'arbre) et apres il faut faire la commande

"tar rvf /.../archive.tar "chemin_relatif_des fichiers"

Bien sur il faut faire attention a l'endroit ou le fichier archive.tar se trouve (c'est pour ca il y a le /.../ pour designer le bon repertoire de ce fichier).
C'est n'est pas tres commode comme methode mais ca fonctionne.


Apres il y a aussi l'option "-C" pour changer de repertoire. Par exemple avec:
tar -r -C toto -vf archive.tar dummy.h 

tu ajoutes le fichier dummy.h qui se trouve dans toto/... dans l'archive mais dans la racine de l'archive. Je ne crois pas que tu peux placer un fichier a un sous-repertoire autre que la racine comme ca. Pour ca il faut utiliser la methode de ci-dessus.


Moi personnellement je n'aime pas l'option "r" pour ajouter car elle ne marche avec la l'option "z" (ou "j") pour comprimer avec gzip (ou bzip2). Elle ne marche qu'avec des archives tar non-comprimes.
Pour des archives de tailles modeste (quelques Mo) c'est plus simple de recreer l'archive completement si on veut le modifier.
Ajouter un commentaire
Réponse
+0
moins plus
hum...
en gros c'es vrament la merde...
en fait je dois coder un script qui gere de grosses archives tar (~50mo), et donc entre autre pouvoir ajouter par exemple un seul petit fichier dans l'arborescence d'une archive. apparemment je vais donc etre obligé de tout décompacter, placer mon fichier, et recréer le tar...
en tout cas merci beacoup de ta reponse
Ajouter un commentaire
Réponse
+0
moins plus
Si tu as toujours une copie de ton arbre sous la main sur le DD tu peux simplement faire avec "tar rvf archive.tar chemin/fichier".
Ca devient seulement plus complique s'il faut recreer l'arbre de repertoires mais avec "mkdir -p ..." tu peux creer une chaine de sous-repertoire d'un seul coup et dans un script tu peux tres bien faire ca, plus la copie et plus le nettoyage apres.

Par contre si tu veux comprimer ton archive il faut le faire apres avec gzip ou bzip2. On ne peut plus faire avec une seule commande tar et l'option "z" ou "j' car l'option "r" n'est pas compatible avec ca.
lili42 - 27 mars 2005 à 18:21
oki, je vais me débrouiller avec ca.
en tout cas merci beacoup pour ton aide.
Ajouter un commentaire
Ce document intitulé « petite question sur tar » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?