Try something like this:
Code:
#!/bin/sh
# Do the directories first, so that the
# path doesn't change
for each in `find . -type d`
do
newname=`echo $each | tr [A-Z] [a-z]`
mv $each $newname
done
# Now to the files...
for eachf in `find . -type f`
do
newnamef=`echo $eachf | tr [A-Z] [a-z]`
mv $eachf $newnamef
done
I tested this on my machine real quick, and it worked OK...
Hope this helps.
(By The Way, you'll get some errors from mv if the filename is already lowercase {I even got an error trying to move "." to "."} - you don't have to worry about those...)