Più piccolo ancora mi piace:
rename 'y/A-Z/a-z/' *
Sui filesystem senza distinzione tra maiuscole e minuscole come HFS+ di OS X, ti consigliamo di aggiungere -f
bandiera:
rename -f 'y/A-Z/a-z/' *
Una versione concisa che utilizza il "rename"
comando:
find my_root_dir -depth -exec rename 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;
Ciò evita problemi con le directory che vengono rinominate prima dei file e il tentativo di spostare i file in directory non esistenti (ad es. "A/A"
in "a/a"
).
Oppure, una versione più prolissa senza usare "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.
Quest'ultimo consente una maggiore flessibilità con il comando di spostamento (ad esempio, "svn mv"
).