我想重命名一个与名称匹配的基础的所有目录.例如:
在基地/我有:
- foo/bar/blah - my/bar/foo - some/bar/foo1 - other/foo/bar
我想重命名所有匹配栏的目录,但我想保留前缀部分.
通过查找,我可以轻松地列出所有的目录,如下所示:
find . -name repositoryunit -type d
但是,如何使用-exec mv {} …(或者可以结合另一个应用程序),以便保留前缀?
提前谢谢了!
解决方法
find . -name bar -type d -execdir mv {} baz \;
在执行命令之前,-execdir将目录更改为父级,因此这里的mv将是每个父目录的本地.