Você pode criar o arquivo "temp" às 12h e, em seguida, localizar o arquivo mais novo e renomeá-lo com a respectiva data
Por exemplo:
Etapa 1
Crie um arquivo às 12h ou depois, usando o seguinte comando.
$ touch -d "$(date +%F)" temp.file
touch
fornecerá a data do arquivo se você executar em 26 de outubro de 2013, a data do arquivo será "26 de outubro às 00:00".
Etapa 2
Como você deseja definir a data anterior para o arquivo, crie uma variável para obter a data anterior:
$ Yesterday=$(date +%Y%m%d -d '1 day ago')
NOTA: (isso salvará o valor "20131025" na variável).
Etapa 3
Agora você pode encontrar arquivos mais novos que temp.file
que criamos.
$ find . -type f -newer temp.file
OK, você pode ver os arquivos criados depois das 12h da manhã, como desejar. Agora você deseja renomear a data anterior?
$ find . -type f -newer temp.file | \
awk -v y=$Yesterday '{split($0,arr,"_"); \
print "mv -v --",$0, arr[1]"_"y"_"arr[3]}'
O comando acima apenas imprimirá a saída, onde o primeiro arquivo é o nome do arquivo original e o segundo arquivo que você deseja.
Se você acha que a saída parece estar bem, basta anexar | sh
ao mesmo comando
$ find . -type f -newer temp.file | \
awk -v y=$Yesterday '{split($0,arr,"_"); \
print "mv -v --",$0, arr[1]"_"y"_"arr[3]}' | sh
Isso renomeará o arquivo com a data anterior na segunda parte. Então você pode criar um script com a ajuda dos comandos acima e depois rodar depois do 12 usando o cron.