修改目录极其子目录的文件名

修改目录极其子目录的文件名

把当前目录极其子目录的文件名!
由大写改为小写!


不过就是连目录也要同时改!
不知道可不可以不改目录
复制内容到剪贴板
代码:
#!/bin/bash
function finddir()
{
        local d
        #echo "$1"
        for d in "$1"/*; do
                c=$(echo $d | tr A-Z a-z)
                if ([ -d "$d" ] && [ "$d" != "$c" ])
                      then
                        mv $d $c
                fi
                [ -d "$c" ] && finddir "$c"
                if ([ -f "$d" ] && [ "$d" != "$c" ])
                      then
                        echo "$d"
                        mv $d $c
                fi
        done
}
finddir "."
      
[CODE] #!/bin/bash

function dp
{
echo $1 $2
local p t i
p=(`ls $1`)
for (( i=0; i<${#p[@]}; i++ ))
do
  t=$1'/'${p}
  [ -d $t ] && dp $t $2
  [ -f  $t ] && {
   [ $2 == "UP" ] && mv $t $1'/'$(echo ${p} | tr "[a-z]" "[A-Z]")
   [ $2 == "LOW" ] && mv $t $1'/'$(echo ${p} | tr "[A-Z]" "[a-z]")
  }
done
}

function pu
{
echo "Usage: `basename $0` [options] [directory]"
echo "options: default -h"
echo " --help or -h Display this usage"
echo " --up or -u Change the file name to UP-chares"
echo " --low or -l Change the file name to Low-chares"
echo "directory: if not given , operator the directory"
exit 1
}

[ $# -eq 0 ]||[  $1 == "--help"  -o $1 == "-h" ] && pu
[ $1 == "--up"  -o $1 == "-u" ] && op="UP"
[ $1 == "--low"  -o $1 == "-l" ] && op="LOW"
[ ${op-"error"} == "UP"  -o ${op-"error"} == "LOW" ] || pu


dp ${2-"."} $op
[/CODE]

能用吗?