Как удалить первые два символа имени файла, когда это - дефис?

У меня есть набор mp3 названных файлов - foo - bar.mp3. Моя цель состоит в том, чтобы удалить первый дефис и первое пространство на терминале (Bash), который дал бы foo - bar.mp3. Я попробовал его rename 's/^..//' * который хорошо работает для названных файлов foo.mp3. Однако я получаю "Неизвестную опцию: - foo_1 - bar.mp3" для каждого файла. Кто может помочь?

1
задан 2 February 2020 в 22:52

1 ответ

Можно использовать -- указать на конец опций, так, чтобы имена файлов, запускающиеся с - рассматриваются как аргументы имени файла:

rename -n 's/^..//' -- *.mp3

Напр.

$ rename -n 's/^..//' *.mp3
Unknown option:  foo - bar.mp3
Usage:
    rename [ -h|-m|-V ] [ -v ] [ -n ] [ -f ] [ -e|-E perlexpr]*|perlexpr
    [ files ]

тогда как

$ rename -n 's/^..//' -- *.mp3
rename(- foo - bar.mp3, foo - bar.mp3)
3
ответ дан 20 February 2020 в 23:03

Другие вопросы по тегам:

Похожие вопросы: