Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#1 Le 18/05/2010, à 13:24

cracolinux

Renommage de répertoires

Bonjour !

Voici l'arborescence en question :

|-- dossier1
|   `-- toto
|-- dossier2
|    -- toto
|-- dossierX
|    -- toto


Je voudrais renommer les dossiers "toto" en "tata"

J'ai essayer ça sans succès :

cd /monrepertoire

find . -name "toto" -exec mv -T {} "tata" \;

smile

Dernière modification par cracolinux (Le 18/05/2010, à 13:49)


Pixup : postez vos images vite et bien
« Ne devenez jamais pessimiste. Un pessimiste a plus souvent raison qu'un optimiste, mais l'optimiste s'amuse plus — et aucun des deux ne peut arrêter la marche du monde. » R.Heinlein

Hors ligne

#2 Le 18/05/2010, à 13:32

mael78

Re : Renommage de répertoires

pourquoi rm ? ça serais pas mv plutot?


---------------------“In the Beginning...was the Command Line”----------------------
HTPC athlon64 x2 4000+/GF GT430/Auzen X-Plosion/2GO DDR2 sous LiveXBMC
Desktop Corei7 920/GF GTX560TI/3GO DDR3 sous multiboot Ubuntu 11.10(Cinnamon)/Seven
Laptop Acer Turion64 x2/Mobility Radeon X1300/2 GO DDR2 sous Mint 12 LXDE

Hors ligne

#3 Le 18/05/2010, à 13:49

cracolinux

Re : Renommage de répertoires

yep! je corrige ! merci wink


Pixup : postez vos images vite et bien
« Ne devenez jamais pessimiste. Un pessimiste a plus souvent raison qu'un optimiste, mais l'optimiste s'amuse plus — et aucun des deux ne peut arrêter la marche du monde. » R.Heinlein

Hors ligne

#4 Le 18/05/2010, à 14:14

troisseize

Re : Renommage de répertoires

Salut!!

mkdir -p test/dossier1/toto test/dossier2/toto test/dossierX/toto
cd test/

Effectivement le problème de la commande du premier post est qu'elle est équivalente à:

mv dossier1/toto ./tata
mv dossier2/toto ./tata
mv dossier3/toto ./tata

au lieu de :

mv dossier1/toto dossier1/tata
mv dossier2/toto dossier2/tata
mv dossier3/toto dossier3/tata

un début de solution (find laisse des message d'erreur, mais ça fais le travail)

find . -name 'toto' -exec rename s/toto/tata/ {} \;

par contre je n'ai pas réussi à utiliser dirname et basename:

find . -name 'toto' -exec echo $(dirname {}) \;

ne marche pas

Dernière modification par troisseize (Le 18/05/2010, à 14:17)

Hors ligne

#5 Le 18/05/2010, à 19:33

cracolinux

Re : Renommage de répertoires

find . -name 'toto' -exec rename s/toto/tata/ {} \;

Je comprends pas la partie rename...
tu peux m'éclairer ?


Pixup : postez vos images vite et bien
« Ne devenez jamais pessimiste. Un pessimiste a plus souvent raison qu'un optimiste, mais l'optimiste s'amuse plus — et aucun des deux ne peut arrêter la marche du monde. » R.Heinlein

Hors ligne

#6 Le 18/05/2010, à 21:47

zapple

Re : Renommage de répertoires

En fait c'est très simple, mais il suffit d'y penser :

find . -type d -name toto -exec mv {} {}/../tata \;

Bien que le message t'affichera

find: "./dossier1/toto": Aucun fichier ou dossier de ce type

Tes dossiers toto seront bien renommés en tata.

edit modo : balises [code]

Dernière modification par nesthib (Le 19/05/2010, à 08:14)

Hors ligne

#7 Le 18/05/2010, à 22:24

cracolinux

Re : Renommage de répertoires

Pigé!
Merci les gars! smile


Pixup : postez vos images vite et bien
« Ne devenez jamais pessimiste. Un pessimiste a plus souvent raison qu'un optimiste, mais l'optimiste s'amuse plus — et aucun des deux ne peut arrêter la marche du monde. » R.Heinlein

Hors ligne

#8 Le 19/05/2010, à 07:31

serged

Re : Renommage de répertoires

et un petit -type d pour ne trouver que les répertoires...


Linux-Mint Qiana 64 (Cinnamon) sur ASUS F2A55/AMD A8-5600K APU

Hors ligne

#9 Le 19/05/2010, à 11:29

Postmortem

Re : Renommage de répertoires

Salut !

for rep in $(find . -type d -name toto)
do
mv $rep ${rep%/*}/tata
done

Edit : S'il y a des espaces dans les noms de répertoire, suis pas certain que ça fonctionne par contre !

Dernière modification par Postmortem (Le 19/05/2010, à 11:30)


Trusty Tahr (64 bits), Athlon64 3800+, ATI Radeon HD4870

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#10 Le 19/05/2010, à 11:41

Postmortem

Re : Renommage de répertoires

Comme ça, ça prend en compte les éventuels chemins contenant des espaces :

find . -type d -name toto > list.tmp
while read rep
do
mv "$rep" "${rep%/*}/tata"
done < list.tmp
rm list.tmp

Trusty Tahr (64 bits), Athlon64 3800+, ATI Radeon HD4870

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#11 Le 19/05/2010, à 13:09

troisseize

Re : Renommage de répertoires

pour rename, ça sert à renomer, mais on l'utilise plutot pour les fichiers.

J'ai trouvé ce lien là dessus (par exemple):

http://www.cyberciti.biz/tips/renaming- … rompt.html

J'aime beaucoup la solution de zapple! j'ai d'abord crus que ça ne marchait pas pour les sous-sous-(etc...)-dossier, mais si!

Hors ligne

#12 Le 19/05/2010, à 15:20

cracolinux

Re : Renommage de répertoires

Salut,

J'aime aussi la solution de zapple (pas de remix wink ).

Mais j'ai pas compris la solution de Postmortem en revanche :

Code:

find . -type d -name toto > list.tmp
while read rep
do
mv "$rep" "${rep%/*}/tata"
done < list.tmp
rm list.tmp

Dernière modification par cracolinux (Le 19/05/2010, à 18:20)


Pixup : postez vos images vite et bien
« Ne devenez jamais pessimiste. Un pessimiste a plus souvent raison qu'un optimiste, mais l'optimiste s'amuse plus — et aucun des deux ne peut arrêter la marche du monde. » R.Heinlein

Hors ligne

#13 Le 19/05/2010, à 15:43

troisseize

Re : Renommage de répertoires

find . -type d -name toto > list.tmp

te te stock le nom des répertoire 'tata' en colonne dans le fichier list.tmp

while read rep
do
echo $rep
done < list.tmp

permet de boucler sur les répertoire contenus dans list.tmp

${rep%/*}

retourne $rep en enlevant tout ce qu'il y a après le dernier '/' ('/' compris)

par exemple

s='un:deux:trois'
echo ${s%:*}

affiche

un:deux

Dernière modification par troisseize (Le 19/05/2010, à 15:45)

Hors ligne

#14 Le 19/05/2010, à 16:32

Postmortem

Re : Renommage de répertoires

Je comptais faire l'explication plus tard mais troisseize m'a devancé !


Trusty Tahr (64 bits), Athlon64 3800+, ATI Radeon HD4870

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#15 Le 19/05/2010, à 16:51

zapple

Re : Renommage de répertoires

cracolinux a écrit :

Salut,

J'aime aussi la solution de zapple remix serged.

Ma commande contenait déjà l'option -type d.

Hors ligne

#16 Le 19/05/2010, à 18:17

cracolinux

Re : Renommage de répertoires

zapple a écrit :
cracolinux a écrit :

Salut,

J'aime aussi la solution de zapple remix serged.

Ma commande contenait déjà l'option -type d.

Ah, ben excuses moi alors ! neutral


Merci des explications,
c'est la redirection < qui m'a un peu dérouté

Dernière modification par cracolinux (Le 19/05/2010, à 18:19)


Pixup : postez vos images vite et bien
« Ne devenez jamais pessimiste. Un pessimiste a plus souvent raison qu'un optimiste, mais l'optimiste s'amuse plus — et aucun des deux ne peut arrêter la marche du monde. » R.Heinlein

Hors ligne

Haut de page ↑