我有很多与此类似的文件:
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 参数扩展,用于删除匹配的最短尾随元素\?*