Plus petit encore j'aime bien :
rename 'y/A-Z/a-z/' *
Sur les systèmes de fichiers insensibles à la casse tels que HFS+ d'OS X, vous voudrez ajouter le -f
drapeau :
rename -f 'y/A-Z/a-z/' *
Une version concise utilisant le "rename"
commande :
find my_root_dir -depth -exec rename 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;
Cela évite les problèmes avec les répertoires renommés avant les fichiers et essayant de déplacer des fichiers dans des répertoires inexistants (par exemple "A/A"
en "a/a"
).
Ou, une version plus détaillée sans utiliser "rename"
.
for SRC in `find my_root_dir -depth`
do
DST=`dirname "${SRC}"`/`basename "${SRC}" | tr '[A-Z]' '[a-z]'`
if [ "${SRC}" != "${DST}" ]
then
[ ! -e "${DST}" ] && mv -T "${SRC}" "${DST}" || echo "${SRC} was not renamed"
fi
done
P.S.
Ce dernier permet plus de flexibilité avec la commande de déplacement (par exemple, "svn mv"
).