Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
bash - renommer des fichiers
Envoyé par: philippe

Bonjour,

comment dans un terminal renommer tous les fichiers d'un répertoire dont les noms sont en majuscule, par les mêmes noms mais en lettres minuscules?

D'avance merci,

a+

Poste le Sunday 2 January 2005 17:41:14
Répondre     Citer    
Re: bash - renommer des fichiers
Envoyé par: Léa (Fred)

for name in * ; do newname=$(echo name | tr 'AZERTYUIOPQSDFGHJKLMWXCVBN' 'azertyuiopqsdfghjklmwxcvbn') ; mv '$name' '$newname' ; done
Tu as bien sur meilleur temps d'en faire un script.

Poste le Sunday 2 January 2005 18:01:45
Répondre     Citer    
Re: bash - renommer des fichiers
Envoyé par: philippe

Bonjour fred,

Merci pour ton aide, mais ça ne marche pas:
voici la réponse en sortie:
mv: ne peut évaluer `$name': Aucun fichier ou répertoire de ce type

a+

Poste le Sunday 2 January 2005 18:07:28
Répondre     Citer    
Re: bash - renommer des fichiers
Envoyé par: Léa (Fred)

oups, c'est :
mv "$name" "$newname"

Poste le Sunday 2 January 2005 18:22:30
Répondre     Citer    
Re: bash - renommer des fichiers
Envoyé par: abgech

Je n'ai pas essayé, mais peut-être pourrais-tu voir avec mmv (pour autant que tu ai installé ce paquetage !).

Poste le Sunday 2 January 2005 18:23:18
Répondre     Citer    
Re: bash - renommer des fichiers
Envoyé par: Jonesy's

Bonjour,

Juste pour rendre la commande de Fred plus "lisible" :
Citation

for name in * ; do newname=$(echo name | tr "A-Z" "a-z") ; mv $name $newname ; done

@+

--- Marchons seul, sans faire le mal, sans rien attendre, tel l'éléphant qui traverse la forêt. ---

Poste le Sunday 2 January 2005 18:31:14
Répondre     Citer    
Re: bash - renommer des fichiers
Envoyé par: philippe

Bonjour Jonesy's,

Merci pour ta réponse.
J'ai excécuté la commande que tu proposes, mais ca ne fonctionne toujours pas : celle-ci a créé un sous répertoire name/ et transféré tous les fichiers dedans (toujours en majuscule).
(idem pour la proposition de fred)

a+

Poste le Sunday 2 January 2005 20:06:44
Répondre     Citer    
Re: bash - renommer des fichiers
Envoyé par: Jonesy's

Re...

Citation

philippemais ca ne fonctionne toujours pas : celle-ci a créé un sous répertoire name/ et transféré tous les fichiers dedans (toujours en majuscule).

Effectivement... Ca ne marche pas ! X-o

Là ca le devrais :
Citation

for name in * ; do newname=$(echo $name | tr "A-Z" "a-z") ; mv $name $newname ; done

Bête erreur de syntaxe... 10 flagélations ;-p

@+

--- Marchons seul, sans faire le mal, sans rien attendre, tel l'éléphant qui traverse la forêt. ---

Poste le Sunday 2 January 2005 20:20:19
Répondre     Citer    
Re: bash - renommer des fichiers
Envoyé par: philippe

Oui, cette fois c'est bon.

Un grand merci pour votre aide.

a+

Poste le Sunday 2 January 2005 20:22:44
Répondre     Citer    
Re: bash - renommer des fichiers
Envoyé par: abgech

J'ai essayé ceci:
Citation

for name in * ; do newname=`echo $name | tr "A-Z" "a-z"`; echo $newname; mv $name $newname; done
ça marche, mais avec deux petits problèmes:

1) les fichiers ne contenant que des minuscules dans leur nom affichent le message suivant, pour tes.c par exemple:
Citation

mv: `tes.c' et `tes.c' identifient le même fichier.
2) les répertoires génère le message suivant, par exemple pour public_html:
Citation

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

Ce n'est pas très propre, mais cela ne détruit rien. On peut sans doute perfectionner le script, mais je n'ai pas vraiment le temps, je t'en laisse le soin.

Poste le Sunday 2 January 2005 20:27:17
Répondre     Citer    
Re: bash - renommer des fichiers
Envoyé par: Jonesy's

Re...

Citation
abgech
Ce n'est pas très propre, mais cela ne détruit rien. On peut sans doute perfectionner le script, mais je n'ai pas vraiment le temps, je t'en laisse le soin.

Allez pour le "fun" #%b
Citation

for name in * ; do
newname=`echo $name | tr "A-Z" "a-z"`;
echo $newname;
if ( ! -e $newname -a ! -d $name ) { mv $name $newname; }
done
Pas testé mais il devrait être "propre". ;-)

@+


--- Marchons seul, sans faire le mal, sans rien attendre, tel l'éléphant qui traverse la forêt. ---

Poste le Sunday 2 January 2005 20:38:11
Répondre     Citer    
Re: bash - renommer des fichiers
Envoyé par: philippe

Ok, merci pour ton aide abgech

a+

Poste le Sunday 2 January 2005 20:38:18
Répondre     Citer    
Re: bash - renommer des fichiers
Envoyé par: marc ferraton

Citation
Jonesy's
Bonjour,

Juste pour rendre la commande de Fred plus
"lisible" :
for name in * ; do newname=$(echo name
| tr "A-Z" "a-z") ; mv $name $newname ; done
---

Il fallait lire
for name in * ; do newname=$(echo $name
| tr "A-Z" "a-z") ; mv $name $newname ; done

donc pas grave tu remets tout à sa place
mv name/* .

et tu relances la commande

Poste le Sunday 2 January 2005 20:40:50
Répondre     Citer    
Re: bash - renommer des fichiers
Envoyé par: philippe

Hello marc,

oui, oui, pas de problème, le script (fred->jonesy's->abgech) est bon, il a donné le résultat attendu

Encore merci pour votre aide

a+

Poste le Sunday 2 January 2005 20:59:59
Répondre     Citer    
Re: bash - renommer des fichiers
Envoyé par: marc ferraton

désolé
j'avais commencé à lire le thread et puis j'ai fait autre chose avant de poster, les lendemains de fetes c'est dur #%b

Poste le Sunday 2 January 2005 21:36:41
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
bash - renommer des fichiers
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons