Más pequeño aún me gusta bastante:
rename 'y/A-Z/a-z/' *
En sistemas de archivos que no distinguen entre mayúsculas y minúsculas, como HFS+ de OS X, querrá agregar el -f
bandera:
rename -f 'y/A-Z/a-z/' *
Una versión concisa usando el "rename"
comando:
find my_root_dir -depth -exec rename 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;
Esto evita problemas con los directorios que se renombran antes que los archivos y el intento de mover archivos a directorios que no existen (por ejemplo, "A/A"
en "a/a"
).
O bien, una versión más detallada sin usar "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
PD
Este último permite más flexibilidad con el comando de movimiento (por ejemplo, "svn mv"
).