Mover milhares de arquivos jpg para diretórios diários com base nos arquivos de data de criação EXIF

2

Eu tenho milhares de jpg e mp4 que precisam ser classificados em uma estrutura de diretórios cujo nome é baseado na data em que a imagem foi criada. De preferência, a partir da data EXIF, como a data de modificação dos arquivos pode estar desativada. mas se conseguir a data EXIF é muito trabalhoso eu estou melhor usando a data modificada

Então,

  • file1 taken 2014-06-30
  • file2 taken 2014-07-01
  • file3 taken 2014-06-30

é movido para diretórios

  • /140630/file1
  • /140701/file2
  • /140630/file3

Estou usando o OS X Yosemite como Unix.

    
por Havard 24.10.2014 / 16:08

1 resposta

2

Você pode instalar o ImageMagick e usar a ferramenta de identificação com -verbose, por exemplo:

for f in *.jpg *.jpeg *.JPG *.JPEG *.mp4 *.MP4; do
  echo $f
  identify -verbose "$f"|grep exif:DateTime
  echo
done

Kepler22b-artwork.jpg

Kepler-62f_with_62e_as_Morning_Star.jpg
    exif:DateTime: 2013:04:08 10:45:44

logo.jpg

P1050030.JPG
    exif:DateTime: 2013:11:01 22:59:27
    exif:DateTimeDigitized: 2013:10:31 23:39:55
    exif:DateTimeOriginal: 2013:10:31 23:39:55

P1070322.JPG
    exif:DateTime: 2014:07:14 10:48:43
    exif:DateTimeDigitized: 2014:07:14 10:48:43
    exif:DateTimeOriginal: 2014:07:14 10:48:43

Desculpe, esta não é uma solução completa, mas se você estiver familiarizado com uma linguagem de script como bash ou Python, você pode facilmente escrever um script para analisar essa saída e decidir em qual pasta colocar cada uma.

Como você pode ver alguns arquivos têm 3 campos DateTime, alguns não têm nenhum, então você pode ficar com alguns que precisam ser manipulados manualmente, ou usar o tempo de modificação do arquivo como fallback.

    
por 24.10.2014 / 17:12