GNT sans publicité, site mobile, fonctionnalitées exclusives...

fusionner des arborescences

Le
mpg
Bonjour,

Je me prends la tête depuis un certain temps sur un problème
vraisemblablement tout con, mais je n'arrive vraiment pas à y voir clair
donc je viens demander votre aide. J'ai plusieurs arborescences comme ça :

./root1/a/A/alpha1
. . /beta1
. /B/gamma1
. /delta1
/b/C/epsilon1

avec root2, root3, etc. contenant chacun des sous-répertoires a, a/A, a/B,
etc. que je souhaite fusionner de la façon suivante : newroot doit contenir
les mêmes sous répertoires a, a/A, a/B et newroot/a/A/ doit contenir
alpha1, beta1, alpha2, beta2, etc.

Je ne sais pas si je suis très clair, je peux essayer de l'être plus si ça
ne va pas.

J'essaie de la façon, visiblement naïve, suivante :

mv root1/a newroot # ok
mv root1/b newroot # ok aussi
mv root2/a newroot # BOUM !

avec BOUM qui ressemble au message d'erreur suivant :

mv: ne peut déplacer `root1/a' vers un sous-répertoire de lui-même
`newroot/a'

Bon, alors moi j'y comprends rien parce d'une j'ai pas demandé de déplacer
vers newroot/a mais vers newroot, et puis c'est pas un sous-répertoire du
répertoire initial.

Je que je conçois, c'est que le fait que newroot/a existe déjà la deuxième
fois et que c'est visiblement ça qui perturbe mv, mais je fais pas le lien
avec le message d'erreur d'un part, et d'autre part je vois pas comment m'y
prendre pour que ça marche.

Merci d'avance pour toute aide, je vais (re-)lire la page d'info de mv mais
j'ai peu d'espoir. Au fait, j'utilise GNU mv 6.10 si ça a la moindre
importance.

Manuel.
Lire les 7 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Stephane CHAZELAS
Le #6692811
Essaie pax ou cpio + rm -r pour deplacer des arborescences.

--
Stéphane
Jacques L'helgoualc'h
Le #6693231
Le 23-05-2008, Stephane
Essaie pax ou cpio + rm -r pour deplacer des arborescences.


ou peut-être

rsync -auv --remove-source-files root[1-9]/ newroot/

--
Jacques L'helgoualc'h

Cyrille Lefevre
Le #6708521
mv root2/a newroot # BOUM !

avec BOUM qui ressemble au message d'erreur suivant :

mv: ne peut déplacer `root1/a' vers un sous-répertoire de lui-mêm e
`newroot/a'


comme dit Stéphane...

via cpio :

mkdir /newroot
cd /root1; find . | cpio -pdml /newroot
cd /root2; find . | cpio -pdml /newroot
...

alternative, via pax :

mkdir /newroot
cd /root1; pax -rwl -p e . /newroot
cd /root2; pax -rwl -p e . /newroot
...

le -l, c'est pour linker les fichiers plutôt que les copier, ce qui
accélère grandement les choses, le tout suivi d'un : rm -rf /root?

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.

mpg
Le #6722651
Le (on) lundi 26 mai 2008 11:56, Cyrille Lefevre a écrit (wrote) :

comme dit Stéphane...

via cpio :
[...]
alternative, via pax :

Ok, merci à tous les trois, ça marche parfaitement.


Par curiosité, j'aimerais quand même bien comprendre ce qui n'allait pas
dans ma tentative avec mv : j'avais toujours cru que mv était équivalent à
cp && rm, visiblement pas trop. J'en prends acte, mais si je comprenais le
message d'erreur, ça me ferait plaisir...

Manuel.

Cyrille Lefevre
Le #6727541
Le (on) lundi 26 mai 2008 11:56, Cyrille Lefevre a écrit (wrote) :

Par curiosité, j'aimerais quand même bien comprendre ce qui n'allai t pas
dans ma tentative avec mv : j'avais toujours cru que mv était équiv alent à
cp && rm, visiblement pas trop. J'en prends acte, mais si je comprenais le
message d'erreur, ça me ferait plaisir...


Bonjour,

reprend tes cours unix, c'est une histoire de link/unlink en tant
qu'appelle système, voir même rename sur les os réçent.

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.

Publicité
Suivre les réponses
Poster une réponse
Anonyme