OBSERVAÇÃO : o seguinte não altera os dados EXIF nem o registro de data e hora real dos arquivos - apenas seus nomes. Pode ser preferível mudar todos os três consistentemente (talvez possível usando exiftool
?)
Parece ser possível usar o comando prename
/ rename
baseado em perl, usando strptime
para ler a string de tempo formatada e, em seguida, strftime
para escrevê-lo novamente após adicionar um deslocamento - em segundos ( convertido implicitamente para um objeto Time :: Piece).
Com base nos comentários, "a câmera da minha esposa teve um deslocamento de tempo de 5:46" , você parece dizer 5 horas e 46 minutos (em vez de, digamos, 5 minutos e 46 segundos) e requer uma mudança (para frente) de 5 x 3600 + 46 x 60 = 20760 segundos. Então você poderia fazer:
prename -vn -- '
BEGIN{use Time::Piece};
s/\d+_\d+/(20760+Time::Piece->strptime($&, "%Y%m%d_%H%M%S"))->strftime("%Y%m%d_%H%M%S")/e
' *.jpg
20161019_112301.jpg renamed as 20161019_170901.jpg
O sinal -n
é para testes - remova-o quando tiver certeza de que o comando está executando a conversão correta.
Veja esta questão relacionada Como posso converter em lote nomes de pastas de um formato de data para outro