BASH: добавить строку ко всем именам файлов в папке.

У меня есть папка с несколькими файлами:

1-1.csv
1-2.csv
2-1.csv

И я хочу переименовать их так:

1-1-hist.csv
1-2-hist.csv
2-1-hist.csv

После этот пост я попробовал следующий :

for file in *.csv
do
  mv "$file" "${file/.csv/-hist.csv}"
done

Но имена файлов не меняются, и мой терминал говорит:

mv: '1-1.csv' and '1-1.csv' are the same file
mv: '1-2.csv' and '1-2.csv' are the same file
mv: '2-1.csv' and '2-1.csv' are the same file

Что я делаю неправильно ?

ИЗМЕНИТЬ:

rename 's/.csv/-hist.csv/' *.csv

сделал работу. Даже если я не знаю, что не получилось с первой попытки...


person Vincent    schedule 23.07.2016    source источник
comment
Что означают символы подчеркивания в замене? Похоже, что оболочка пытается их сопоставить, но не находит и, следовательно, не выполняет подстановку.   -  person D Hydar    schedule 23.07.2016
comment
Уберите подчеркивания.   -  person Cyrus    schedule 23.07.2016
comment
Я пробовал без подчеркивания, но все равно...? для файла в * do mv $file ${file/.csv/-hist.csv} сделано   -  person Vincent    schedule 23.07.2016
comment
Команда, как сейчас в вопросе, должна работать в bash.   -  person Kusalananda    schedule 24.07.2016