从 linux 中的多个文件名中删除“-template”部分

Remove "-template" part from multiple filenames in linux

我有一些文件的名称如下:

jcr-repository-template.xml
imapserver-template.xml

我想将它们重命名为:

jcr-repository.xml
imapserver.xml.

我尝试使用 find -name "*-template.*" -exec rename -v "template" "" {} ";"

它起作用了,但我只匹配了 "template" 而不是“-template”(我找不到如何)。所以现在我在每个文件名的末尾都有一个短划线字符。任何人都可以帮我吗?

在许多命令中,选项 -- 可用于指示我可以测试的选项的结尾并且它有效:

touch imapserver-template.xml
rename -v -- -template '' imapserver-template.xml

否则另一种解决方案可以是使用不以 -

开头的等效正则表达式模式
rename -v '(?:-template)' '' imapserver-template.xml