我刚刚开始学习 Bash。我想做一个脚本来查找目录及其子目录中的某些特定文件夹,如果存在,请将其重命名为我们找到它的同一文件夹。相同的特定文件夹可以位于某些子目录中。
我用这个:
file=`find . -name a`
if [ -d $file ]
then
rename 's/a/b/' $file
fi
但是不起作用。有没有办法完成这个过程?
谢谢。
最后,我解决了这个问题:
find . -name "a" -type d -execdir rename 's/a/b/' {} \; &>/dev/null
最佳答案
您可以使用 oneliner 来做到这一点:
查找 . -name "a"-type d -execdir 重命名's/a/b/' {}\;
要命名的参数可能是正则表达式。
使用 -type d
它将找到所有目录。
-execdir
更改为匹配项目的目录,然后执行 rename
命令,并将当前项目的文件名作为参数传递 ({}
)。
关于linux - Bash - 在目录及其 sbdirectories 中查找多个特定文件夹并重命名这些特定文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29581325/