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