
У меня много файлов, похожих на этот:
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), это ничем не отличается от переименования любых других файлов: например, вы можете использовать простой цикл оболочки
for f in *.mp3\?referredby=rss; do mv -- "$f" "${f%\?*}"; done
где ${f%\?*}
— расширение параметра оболочки, удаляющее кратчайший конечный элемент, соответствующий\?*