Bash:批量重命名具有相同名称的嵌套目录或文件

Bash:批量重命名具有相同名称的嵌套目录或文件,bash,Bash,我想重命名以下目录: 从1/2/3/2/2到1/2\u re/3/2\u re/2\u re 每个目录也有其他内容,例如file2stay.sh,这些内容应该保持不变 我试过命令: find./-exec bash-c'mv 2 2_re'但成功重命名第一个目录后,将显示以下错误消息: mv:cannot stat'2':没有这样的文件或目录您可以在for循环中使用查找和排序-r,使用进程替换: while read -r f; do mv "$f" "${f}_re" done <

我想重命名以下目录:

1/2/3/2/2
1/2\u re/3/2\u re/2\u re

每个目录也有其他内容,例如file2stay.sh,这些内容应该保持不变

我试过命令:
find./-exec bash-c'mv 2 2_re'但成功重命名第一个目录后,将显示以下错误消息:


mv:cannot stat'2':没有这样的文件或目录

您可以在for循环中使用
查找
排序-r
,使用
进程替换

while read -r f; do
    mv "$f" "${f}_re"
done < <(find . -name '2' | sort -r)
读取时-rf;做
mv“$f”${f}\re”

完成<您需要告诉
find
在文件夹本身之前使用
-depth
处理文件夹内容:

find . -name "2" -type d -depth -execdir mv 2 2_re \;
-execdir
执行找到
/2
的文件夹中的
mv