我想重命名与名称相匹配的basedir下的所有目录。例如:
在中basedir/,我有:
basedir/
- foo/bar/blah - my/bar/foo - some/bar/foo1 - other/foo/bar
我想重命名所有匹配的目录bar,但是我想保留前缀部分。
bar
使用find,我可以轻松地列出所有目录,如下所示:
find
find . -name repositoryunit -type d
但是,如何使用-exec mv {} ...(或与其他应用程序结合)以保留前缀?
-exec mv {} ...
提前谢谢了!
find . -depth -name bar -type d -execdir mv {} baz \;
-execdir在执行命令之前将目录更改为父目录,因此mv此处对于每个父目录都是本地的。
-execdir
mv