我有一些这样的文件:
├── abc.conf
├── def.conf
├── xyz.conf
├── 10-abc.conf.postix
├── 10-def.conf.postix
我想.postfix
从所有以10-
. 为了在不安装任何工具的情况下执行此操作,我尝试使用bash
,find
和sed
.
我建立了这个:
$ find . -name "10-*.conf.postfix" -exec mv '{}' $(echo {} | sed -E 's/(.*)\.postfix$/\1/') \;
但它失败了,因为mv
-command 将被渲染为:
$ mv '10-abc.conf.postix' 10-abc.conf.postix
如果我在我的子外壳中测试代码,那么它会按预期工作(它返回不带 . 的文件名.postifx
)。我不确定出了什么问题。你对我有什么暗示吗?