Bash
更改多個相似文件名的結尾
我有許多看起來與此類似的文件:
56.mp3?referredby=rss
我想要做的是刪除,
?referredby=rss
所以他們會是這樣的:56.mp3
我該怎麼做?
如果你有 Perl
rename
,它就像rename 's/\?referredby=rss//' ./*referredby=rss
與
util-linux
rename
:rename '?referredby=rss' '' ./*referredby=rss
除了轉義
?
(在 glob 表達式中具有特殊含義)之外,這實際上與重命名任何其他文件沒有什麼不同:例如,您可以使用簡單的 shell 循環for f in *.mp3\?referredby=rss; do mv -- "$f" "${f%\?*}"; done
where
${f%\?*}
是一個 shell 參數擴展,它刪除了最短的尾隨元素匹配\?*