Je tente de renommer tous les répertoires et fichiers en majuscules avec un script shell. Ce que j'ai fonctionne, mais pas pour les sous-répertoires. Comme les noms de répertoires changent pendant l'exécution des scripts, je reçois des choses comme mv: cannot stat './def/two/three': No such file or directory
UNIX renommer les fichiers/répertoires en majuscules
J'ai essayé d'utiliser -depth
avec find afin de le renommer de bas en haut. Mais toujours courir dans le même problème. Je pensais à utiliser cut
pour briser le chemin sur /
et renommer de cette façon, mais je suis à perte.
Voici ce que j'ai:
for i in `find . -name "*[a-z]*"`
do new_name=`echo $i | tr '[a-z]' '[A-Z]'`
mv $i $new_name
done
Je vous serais reconnaissant toute direction que je me sens comme cela devrait être une tâche commune, mais n'a pas réussi à trouver une solution de travail de quelques recherches Google.
Veuillez noter que je ne peux pas utiliser rename
car il n'est pas pris en charge par ma distribution.
Je propose de passer à SuperUser. – Teddy
Si vous avez Perl, 'renommer 'est un script Perl extrêmement simple. Vous pouvez l'utiliser à la place du binaire (qui n'est pas aussi puissant). Il y a des dizaines de questions sur SO concernant le renommage des fichiers et des répertoires et même quelques-uns sur le faire [profondeur d'abord] (http://stackoverflow.com/search?q=%2Brename+%2Bdepth). –
duplication possible de [Comment renommer tous les dossiers et fichiers en minuscules sous Linux?] (Http://stackoverflow.com/questions/152514/how-to-rename-all-folders-and-files-to-lowercase-on -linux) –