1、根据需求,需要将某一目录下递归的所有大些字母转换成小写字符

2、代码如下


read -p "输入你要改变的父目录:"   dire                                       #读入目录

ls -lR $dire | grep / |awk -F : '{print $1}' > 2.txt                         #写入文件,以备校对

aa=`cat 2.txt | sort -r`                                                     #排序,生成倒序最底层目 录在最下方

for i in $aa                                                                 #循环

do

dd=`echo $i|awk -F / '{print  $NF}'`                         #按/查询字段数,截取最后目录

sss=`echo $i|awk -F $dd  '{print  NF}'`                      #获取字段数

if [ $sss -gt 2 ];then                                       #判断目录有无出现与最后目录一样的字段【以最后目录做切割】

echo $sss                                            #输出以最后目录做分割的截取数不等于2的,【即有重复的】

echo $i                                              #输出重复目录

echo                                                 #换行

else

directory=`echo $i|awk -F $dd  '{print  $1}'`        #截取除最后目录外其他目录

mv $i $directory`echo $dd | tr 'A-Z' 'a-z' `         #更改目录为小写【小写转大些,将tr后面颠倒即可】

fi

done

ls -lR $dire | grep / |awk -F : '{print $1}' > 3.txt                         #更改之后的目录,查看效果【cat 3.txt】