ファイルの大文字を小文字にする

#!/bin/sh
#rename.sh [-f] dirname

arg="-i"
if [ "$1" = "-f" ]; then
    arg="-f"
    shift
fi

dir=$1
[ -d $dir ] || exit 1
dir=`echo "$dir" | sed 's/\/$//'`
for filename in `ls $dir`; do
    #ファイル名に大文字を含むか判定
    if expr "$filename" : '.*[A-Z]' >/dev/null; then
        rename=`echo "$filename" | tr 'A-Z' 'a-z'`
        if [ $arg = "-i" ]; then
            echo -n "Do you rename $filename to $rename [y/n]?(n) "
            read answer
            if [ "$answer" = "y" -o "$answer" = "Y" ]; then
                mv -i $dir/$filename $dir/$rename
            fi
        else
            mv -i $dir/$filename $dir/$rename
        fi
    fi
done
$ touch A B

$ ./rename.sh .
Do you rename A to a [y/n]?(n) y
Do you rename B to b [y/n]?(n) y

$ ls
a  b  rename.sh