Как получить дату и время из JPEG в командной строке Linux? - PullRequest
0 голосов
/ 07 июля 2019

У меня много тысяч цифровых фотографий, сделанных за последние 15 лет.К сожалению, в моем архиве есть некоторые проблемы:

  • Папки содержат дубликаты одной и той же фотографии, но, возможно, с другим именем.
  • Некоторые камеры сбрасывают нумерацию, например IMG_9999.jpg к нулю, поэтому, если я просто скопирую их все в каталог с именами, возникнут конфликты имен.
  • У меня было несколько камер, поэтому некоторые файлы имеют одно и то же имя, но разные темы.
  • Все они в формате JPEG, хотя они поступают с пяти разных камер в течение многих лет, поэтому формат JPEG может иметь некоторые различия.

Мое решение - скопировать всеИзображения из нескольких архивных папок в одну выходную папку, с именами по убыванию даты и времени, с этими данными, извлеченными из файла, плюс общая сумма файла:

2012-04-01_16:34_87514f3c2734f963891089cef0bb547f5d36451f.jpg

Таким образом дублируютсяудаляются, и несколько копий одной и той же фотографии не могут существовать.

#!/bin/bash

for i in *.jpg
do
    date=`echo "2019-08-10"`
    checksum=`sha1sum $i | awk -F" " '{ print $1}'`
    cp $i OUT/$date\_$checksum\.jpg
    echo "Copied "$i" to OUT/"$date\_$checksum\.jpg"."
done

Я создал этот скрипт выше, который позволяет скопировать файл надругая папка, sha1sum.Как я могу точно получить дату и время, когда была сделана фотография, чтобы данные также можно было добавить к имени файла?

...