脚本的原始版本时找同事要的,只有很简单一点,如果又多层大写目录,则需要执行多次脚本,我修改了以下,改成了两个脚本,一个用来查文件,一个用来改文件,不过又多少大写目录,都一次搞定,不过就是效率低了一些,凑合用倒是够了,如果最求速度,应该采用编译型语言来编写,使用shell就是为了一简单,不知道那位dx有没有更好的办法。
调用方法如果下
shell>uptolow.sh 目录(可以时绝对,也可以时相对)
脚本文件如下
uptolow.sh
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#!/bin/sh
if test $# != 1
then
echo "useage : $0 directory "
exit -1
fi
LOG="/tmp/uptolow.log"
DIR=$1
LOWDIR=`echo $DIR|tr "[A-Z]" "[a-z]"`
if [ $DIR != $LOWDIR ]
then
mv $DIR $LOWDIR
fi
findtoexec()
{
find $1 -exec uptolow2.sh {} /; >& $LOG
}
echo `date +%Y%m%d-%H%M` "start"
while : ; do
findtoexec $LOWDIR
if [ -s $LOG ]
then
echo `date +%Y%m%d-%H%M` "recursion next.."
else
break
fi
done
echo `date +%Y%m%d-%H%M` "finished!"
uptolow2.sh
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#!/bin/sh
new=`echo $1|tr "[A-Z]" "[a-z]"`
if [ "$1" != "$new" ]
then
mv "$1" "$new"
fi
博主修改同事给的简单脚本,改成两个shell脚本,一个查文件,一个改文件,可一次搞定多层大写目录的大小写转换,虽效率低但胜在简单。文中给出调用方法及两个脚本的具体代码。
916

被折叠的 条评论
为什么被折叠?



