主题: 修改一个目录下所有文件和目录名统一为大写, 或小写, 包括子目录
这是一个朋友实际工作中提出的问题
cd 目标目录
let i=1
max=$(find | sed 's#[^/]##g' | sort -r | head -1 | wc -c)
while [ $i -le $max ]
do
find -mindepth $i -maxdepth $i -name '*[a-z]*' | while read file
do
mv "$file" "$(echo $file | tr a-z A-Z)"
done
let i++
done
上面是把小写改成大写, 如果要把大写改成小写, 有两个地方需要修改:
- find ... -name的参数应为'*[A-Z]'
- tr命令应该改为tr A-Z a-z
阅读(1126) | 评论(0) | 转发(0) |