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 :
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.
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 (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.
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...
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 (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.
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%nospam@laposte.net.invalid
supprimer "%nospam% et ".invalid" pour me repondre.
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.
mpg
Le (on) jeudi 29 mai 2008 03:28, Cyrille Lefevre a écrit (wrote) :
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.
Euh... j'ai jamais eu de cours Unix (malheureusement). Si ce n'est pas trop
long à expliquer, ça m'intéresse bien, s'il y a des bonnes ressources en lignes qui expliquent ce point sans avoir besoin de lie les 300 pages précédentes, je prends aussi (je prendrais bien aussi des références papier, mais mon budget est limité à ma pile à lire un peu trop grande en ce moment).
Merci d'avance, Manuel.
Le (on) jeudi 29 mai 2008 03:28, Cyrille Lefevre a écrit (wrote) :
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.
Euh... j'ai jamais eu de cours Unix (malheureusement). Si ce n'est pas trop
long à expliquer, ça m'intéresse bien, s'il y a des bonnes ressources en
lignes qui expliquent ce point sans avoir besoin de lie les 300 pages
précédentes, je prends aussi (je prendrais bien aussi des références
papier, mais mon budget est limité à ma pile à lire un peu trop grande en
ce moment).
Le (on) jeudi 29 mai 2008 03:28, Cyrille Lefevre a écrit (wrote) :
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.
Euh... j'ai jamais eu de cours Unix (malheureusement). Si ce n'est pas trop
long à expliquer, ça m'intéresse bien, s'il y a des bonnes ressources en lignes qui expliquent ce point sans avoir besoin de lie les 300 pages précédentes, je prends aussi (je prendrais bien aussi des références papier, mais mon budget est limité à ma pile à lire un peu trop grande en ce moment).
Merci d'avance, Manuel.
Cyrille Lefevre
Le (on) jeudi 29 mai 2008 03:28, Cyrille Lefevre a écrit (wrote) :
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.
Euh... j'ai jamais eu de cours Unix (malheureusement). Si ce n'est pas trop
long à expliquer, ça m'intéresse bien, s'il y a des bonnes ressou rces en lignes qui expliquent ce point sans avoir besoin de lie les 300 pages précédentes, je prends aussi (je prendrais bien aussi des référ ences papier, mais mon budget est limité à ma pile à lire un peu trop g rande en ce moment).
Bonjour,
pour faire simple, les appels système link et rename ne peuvent pas déplacer un répertoire si la cible est un répertoire existant et no n vide et ni la commande mv ni l'appel système rename n'ont d'intelligenc e pour déplacer les fichiers du répertoire source sur le répertoire c ible.
pour mémoire, mv tente de supprimer la cible avant de déplacer la source, dans le cas d'un fichier, c'est au travers de l'appel système unlink et dans le cas d'un répertoire, de l'appel système rmdir, s'il n'est pas vide, l'appel système n'aboutit pas.
cf man link(2), rename(2), unlink(2), rmdir(2) et bien sur mv(1) pour plus de détails.
Cordialement,
Cyrille Lefevre. -- mailto:Cyrille.Lefevre-news% supprimer "%nospam% et ".invalid" pour me repondre. remove "%nospam" and ".invalid" to answer me.
Le (on) jeudi 29 mai 2008 03:28, Cyrille Lefevre a écrit (wrote) :
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.
Euh... j'ai jamais eu de cours Unix (malheureusement). Si ce n'est pas trop
long à expliquer, ça m'intéresse bien, s'il y a des bonnes ressou rces en
lignes qui expliquent ce point sans avoir besoin de lie les 300 pages
précédentes, je prends aussi (je prendrais bien aussi des référ ences
papier, mais mon budget est limité à ma pile à lire un peu trop g rande en
ce moment).
Bonjour,
pour faire simple, les appels système link et rename ne peuvent pas
déplacer un répertoire si la cible est un répertoire existant et no n
vide et ni la commande mv ni l'appel système rename n'ont d'intelligenc e
pour déplacer les fichiers du répertoire source sur le répertoire c ible.
pour mémoire, mv tente de supprimer la cible avant de déplacer la
source, dans le cas d'un fichier, c'est au travers de l'appel système
unlink et dans le cas d'un répertoire, de l'appel système rmdir, s'il
n'est pas vide, l'appel système n'aboutit pas.
cf man link(2), rename(2), unlink(2), rmdir(2) et bien sur mv(1) pour
plus de détails.
Cordialement,
Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%nospam@laposte.net.invalid
supprimer "%nospam% et ".invalid" pour me repondre.
remove "%nospam" and ".invalid" to answer me.
Le (on) jeudi 29 mai 2008 03:28, Cyrille Lefevre a écrit (wrote) :
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.
Euh... j'ai jamais eu de cours Unix (malheureusement). Si ce n'est pas trop
long à expliquer, ça m'intéresse bien, s'il y a des bonnes ressou rces en lignes qui expliquent ce point sans avoir besoin de lie les 300 pages précédentes, je prends aussi (je prendrais bien aussi des référ ences papier, mais mon budget est limité à ma pile à lire un peu trop g rande en ce moment).
Bonjour,
pour faire simple, les appels système link et rename ne peuvent pas déplacer un répertoire si la cible est un répertoire existant et no n vide et ni la commande mv ni l'appel système rename n'ont d'intelligenc e pour déplacer les fichiers du répertoire source sur le répertoire c ible.
pour mémoire, mv tente de supprimer la cible avant de déplacer la source, dans le cas d'un fichier, c'est au travers de l'appel système unlink et dans le cas d'un répertoire, de l'appel système rmdir, s'il n'est pas vide, l'appel système n'aboutit pas.
cf man link(2), rename(2), unlink(2), rmdir(2) et bien sur mv(1) pour plus de détails.
Cordialement,
Cyrille Lefevre. -- mailto:Cyrille.Lefevre-news% supprimer "%nospam% et ".invalid" pour me repondre. remove "%nospam" and ".invalid" to answer me.