Uma possibilidade usando a data de criação do EXIF seria (não testada, mas deveria funcionar):
-
mova todos os seus arquivos para o mesmo diretório, renomeie-os para um nome exclusivo (por exemplo, o nome do diretório que contém mais o sufixo
.jpg
)cd ~/foo for i in */; do # moves the file (supposedly named orig.jpg) in current directory # renaming it to the name of the containing sub directory mv ${i}orig.jpg ./'basename $i'.jpg # removes the subdirectory, assuming it is now empty rmdir $i; done
Se os arquivos não forem sempre nomeados da mesma maneira, mas houver apenas um único arquivo (com o nome terminando em
.jpg
) no subdiretório, é claro que você pode substituir o comandomv
por:mv ${i}*.jpg ./'basename $i'.jpg
-
renomeie-os usando
exiftool
:exiftool -d %Y%m%d_%H%M%S.jpg "-filename<CreateDate" ~/foo
Isso pressupõe que nenhum arquivo terá o mesmo tempo de criação até o nível de segundos. Se houver risco de colisão de nome de arquivo, você poderá usar uma variante que adicione um sufixo ao nome do arquivo no caso de um nome duplicado:
exiftool -d %Y%m%d_%H%M%S%-c.jpg "-filename<CreateDate" ~/foo
Mais informações sobre a função de renomeação de exiftool
aqui: link