Это ошибка в zsh
, о которой сообщалось в этом обсуждении [BUG] цитирование внутри шаблонов скобок не имеет эффекта:
case b in
( ['a-c'] ) echo 'false match' ;;
( [a-c] ) echo 'correct match' ;;
esac
будет выведено ложное соответствие
вместо правильного соответствия
.
Исправление планируется выпустить с zsh
версии 5.3.
Используйте расширение параметра, чтобы отделить расширение:
#! /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
С короткой командойrename
(реализация Perl):
rename 's/\.([^.]+)$/_'$(date +"%d%m%Y")'.$1/' *