Как добавить текущую дату перед расширением файла для нескольких файлов в каталоге?

Как добавить текущую дату перед расширением файла для нескольких файлов в каталоге?

Исходные файлы:

Expenses.log Allowances.log 

Вывод:

 Expenses_20170624.log Allowances_20170624.log 

Эта команда добавляет дату после расширения файла. 🙁

 for file in *; do mv "$file" "${file}_$(date +"%d%m%Y")"; done 

Используйте расширение параметра для разделения расширения:

 #! /bin/bash date=$(date +%Y%m%d) for file in * ; do basename=${file%.*} # Remove extension extension=${file##*.} # Remove basename mv "$file" "$basename"_"$date.$extension" done 

С помощью команды short rename (реализация Perl ):

 rename 's/\.([^.]+)$/_'$(date +"%d%m%Y")'.$1/' *