Bash

更改多個相似文件名的結尾

  • April 21, 2017

我有許多看起來與此類似的文件:

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 參數擴展,它刪除了最短的尾隨元素匹配\?*

引用自:https://unix.stackexchange.com/questions/360443