Você pode usar o argumento -t em vez de --date . De man touch :
-t STAMP use [[CC]YY]MMDDhhmm[.ss] instead of current time
Agora, você pode obter esse STAMP da maneira que você está interessado usando o próximo comando:
STAMP=$(stat -c %y f1219486.jpg | \
awk 'BEGIN {FS="[-]|[:]|[ ]|[.]"} {printf "."}' | \
sed -r 's/^/13/g')
Algumas explicações:
-
stat -c %y f1219486.jpgretornará o horário da última modificação def1219486.jpg -
awk 'BEGIN {FS="[-]|[:]|[ ]|[.]"} {printf "."}'alterará a saída do comando anterior neste formato:MMDDhhmm.ss -
sed -r 's/^/13/g'adicionará13(ano atual) na frente deMMDDhhmm.ss
E agora você pode alterar apenas o ano do seu arquivo:
touch -t $STAMP f1219486.jpg