ファイル名を小文字に統一する

testコマンドの-fオプションで普通のファイルか確認する。
basenameコマンドはディレクトリを含んだファイル名からファイル名のみ取り出す。
grepコマンドでファイル名に大文字が含まれているか調べる。-qオプションは
調べるのみで出力はしない。grepの終了コードが0の場合のみmvが実行される。
trコマンドでファイル名の大文字を小文字に変換し、mvの引数に渡す。

#!/usr/bin/sh
for filename in `find $1`; do
    if [ -f $filename ]; then
        basename $filename \
        | grep -q '[[:upper:]]' 2> /dev/null \
        && mv -i $filename `echo $filename | tr 'A-Z' 'a-z'`
    fi  
done