On Sunday 8 July 2007 23:18, Mick wrote: > Thanks Alex, I was trying your script, but just like Etaoin's script > it does not go beyond level 1 in the directory. All the > subdirectories and files within them stay in Capital Case. > > How can I change it to recursively look into the directory?
One way is to use recursion (btw, my previous script had an error: tr must be invoked without the -s option): #!/bin/bash # $1 is the file/dir name function change_case() { newname=`echo $1 | tr 'A-Z' 'a-z'` echo "$1 -> $newname" # for debug mv $1 $newname } function scan() { local i for i in $*; do if [ -d $i ]; then # $i is a directory, recurse and change case cd $i scan * cd .. change_case $i else # regular file change_case $i fi done } # start if [ $# -eq 0 ]; then echo "Must specify root directory" exit 1 fi shopt -s nullglob # to account for empty dirs cd $1 scan * exit 0 -- [EMAIL PROTECTED] mailing list