我想重命名 basedir 下与名称匹配的所有目录。例如:
在 basedir/
中,我有:
- foo/bar/blah
- my/bar/foo
- some/bar/foo1
- other/foo/bar
我想重命名所有匹配 bar
的目录,但我想保留前缀部分。
使用 find
,我可以轻松地列出所有目录,如下所示:
find . -name repositoryunit -type d
但是,我如何使用 -exec mv {} ...
(或者可能与另一个应用程序结合使用)以便保留前缀?
非常感谢!
最佳答案
find . -depth -name bar -type d -execdir mv {} baz \;
-execdir
在执行命令之前将目录更改为父目录,因此此处的 mv
对于每个父目录都是本地的。
关于linux - 重命名多个目录匹配模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18027799/