更改多個相似檔名的結尾

更改多個相似檔名的結尾

我有很多與此類似的文件:

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

相關內容