удар
С чистым Bash, удаляя все до первого -:
for f in *; do mv -- "$f" "${f#*- }"; done
Если вы хотите удалить все до последнего - используйте ## вместо # .
Чтобы сломать это:
- Параметр
for выполняет перебор всех файлов в текущем каталоге (*) и вызывает mv для каждого найденного файла.
-- говорит mv прекратить синтаксический анализ параметров и является защитой от того, чтобы файлы, начинающиеся с - не интерпретировались как параметры (например, файл с именем -i заставит mv запросить вас перед перемещением).
${f#*- } - это манипулирование строками, которое удаляет ненужную часть из каждого имени файла.
- Все переменные заключены в кавычки, чтобы не допустить повторения команды в именах файлов с пробелами или символами глобализации. Всегда заключайте в кавычки ваши переменные.
rename
С rename которое обычно встречается в дистрибутивах Linux, например, если вы хотите указать исполнителя:
rename 's/Versailles - //' *
Или, если вы хотите удалить все до последнего -:
rename 's/.*- //' *
Zsh
В Zsh и zmv, которые вам нужно загрузить с autoload -U zmv:
zmv 'Versailles - (*)' '$1'