For [zsh][1] there is zmv module which must be loaded with autoload;
make sure extendedglob is on
autoload -U zmv
setopt extendedglobLower case the filename in the current directory
zmv '(*)' '${(L)1}'Lower case the extension for each file in the current directory:
zmv '(*.JPG)' '${1:r}.${(L)1:e}'or using recursive traversal:
zmv '(**/)(*.JPG)' '$1${2:r}.${(L)2:e}'On Debian/Ubuntu there is [rename][2] tool.
apt-get install renameLower case the entire filename in the current directory
rename 'y/A-Z/a-z/' *If you get Argument list too long error, combine it with find
find . -exec rename 'y/A-Z/a-z/' {} \;On case insensitive filesystems such as OS X's HFS+, you need to add the -f flag
rename -f 'y/A-Z/a-z/' *