Перемещение тысяч файлов jpg в ежедневные каталоги на основе файлов даты создания EXIF

У меня есть тысячи jpg и mp4, которые нуждаются в сортировке в структуру каталогов, имя которой основано на дате создания изображения. Предпочтительно, начиная с даты EXIF, так как дата изменения файлов может быть отключена. но если получение даты EXIF ​​- это большая работа, мне лучше использовать измененную дату

Так,

  • file1 принят 2014-06-30
  • file2 принят 2014-07-01
  • file3 принят 2014-06-30

перемещается в директории

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

Я использую OS X Yosemite как Unix.

One Solution collect form web for “Перемещение тысяч файлов jpg в ежедневные каталоги на основе файлов даты создания EXIF”

Вы можете установить ImageMagick и использовать инструмент идентификации с -verbose, например:

 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 

Извините, это не полное решение, но если вы знакомы с языком сценариев, например bash или Python, вы можете легко написать сценарий для синтаксического анализа этого вывода и решить, в какую папку поместить каждый из них.

Поскольку вы можете видеть, что у некоторых файлов есть 3 поля DateTime, у некоторых их нет, поэтому вам могут быть предоставлены некоторые из них, которые нужно обрабатывать вручную или использовать время изменения файла в качестве резервной копии.

  • bash как перенаправить вывод из функции в / dev / null
  • Добавить в файлы
  • KSH - если / then / else против двойных усилителей (&&) и двойных труб (||)
  • Добавление вывода команды в цикл for
  • Bash - расширение параметра для переменной с ведущим пробелом
  • Странное поведение скрипта Bash с echo-printf в файле
  • Bash-скрипт. Сдвиг секунд
  • Задача SED, агрегирование строки, содержащей фигурные скобки
  • Перебирайте строки файла, файла раздела и классифицируйте каждый раздел
  • Обмен переменными в нескольких сценариях оболочки
  • Скрипт, запущенный daemon, не может найти общую библиотеку
  • Linux и Unix - лучшая ОС в мире.