1.用for灵活,文件名中字符替换,加日期等都可
先用下面语句测试一下
for i in *aa* ;do NN=$(echo $i | sed 's/aa/bb/') ;echo "$NN";done
保险起见,只拷贝
for i in *aa* ;do NN=$(echo $i | sed 's/aa/bb/') ;cp "$i" "$NN";done
这是更名,慎用
for i in *aa* ;do NN=$(echo $i | sed 's/aa/bb/') ;mv "$i" "$NN";done
2.用rename简洁
先用-n开关测试
rename -n 's/aa/bb/' *
测试无误去掉-n进行更名
rename 's/aa/bb/' *
追问我试了一下,文件夹的名字修改了,但是文件夹里面的文件和文件内容没有修改。能不能再帮忙看看?如果一条语句不好写的话,分开也行。
追答MYPWD=$(pwd);find -type d |sort -r | while read line ;do cd "$line" ; rename 's/aa/bb/' * ;cd "$MYPWD";done
本回答被提问者和网友采纳