Git: переименовать или переместить все файлы одновременно

Я хочу переименовать все файлы erb в моем проекте Git для haml. (например, index.html.erb to index.html.haml)

Если я переименую каждый файл, я должен ввести следующую команду более тридцати раз.

$ git mv app/views/pages/index.html.erb app/views/pages/index.html.haml

Я попробовал команду ниже, но это не сработало.

$ git mv app/views/**/*.erb app/views/**/*.haml

usage: git mv [options] <source>... <destination>

    -n, --dry-run         dry run
    -f, --force           force move/rename even if target exists
    -k                    skip move/rename errors

Как я могу переименовать их сразу?

Ответы

Ответ 1

for i in $(find . -iname "*.erb"); do
    git mv "$i" "$(echo $i | rev | cut -d '.' -f 2- | rev).haml";
done

Для каждого файла .erb git mv он сам с расширением ".erb" заменяется на ".haml".