更改多个相似文件名的结尾

更改多个相似文件名的结尾

我有很多与此类似的文件:

56.mp3?referredby=rss

我想做的是删除它们,?referredby=rss这样它们就会像这样:

56.mp3

我该怎么做?

答案1

如果你有 Perl rename,那就很简单

rename 's/\?referredby=rss//' ./*referredby=rss

util-linux rename

rename '?referredby=rss' '' ./*referredby=rss

答案2

除了转义?(在 glob 表达式中具有特殊含义)之外,这实际上与重命名任何其他文件没有什么不同:例如,您可以使用一个简单的 shell 循环

for f in *.mp3\?referredby=rss; do mv -- "$f" "${f%\?*}"; done

其中${f%\?*}是 shell 参数扩展,用于删除匹配的最短尾随元素\?*

相关内容