Bash - 在目录及其sbdirectories中查找几个特定文件夹,并重命名这些特定文件夹

时间:2015-04-11 18:10:49

标签: linux bash shell unix

我刚开始学习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

1 个答案:

答案 0 :(得分:3)

您可以使用oneliner执行此操作:

find . -name "a" -type d -execdir rename 's/a/b/' {} \;

要命名的参数可能是正则表达式。 使用-type d,它将找到所有目录。 -execdir更改匹配项目的目录,然后执行rename命令,将手头项目的文件名作为参数传递({})。