Как получить дату создания фотографий с помощью скрипта
То, что я хочу сделать, - это реорганизовать файлы в моей папке Camera Roll. Используя дату создания, я хочу поместить их в папки в соответствии с форматом год / месяц, используя их дату создания.
В этом ответе они объясняют, как создавать папки и организовывать их: https://stackoverflow.com/a/1314394/4980886
#!/bin/bash
find $PHOTO_DIR -regextype posix-extended -type d -regex '.*/[0-9]{4}/[0-9]{2}/[0-9]{2}$' |
while read dir; do
newdir="$(echo $dir | sed 's@/([0-9]{4})/([0-9]{2})/([0-9]{2})$@/1-2-3@')"
mv "$dir" "$newdir"
rmdir "$(dirname $dir)"
rmdir "$(dirname $(dirname $dir))"
done
Но это не касается того, как получить дату создания, возможно, я должен получить метаданные из данных EXIF. Как сделать что-либо?
2 ответа:
В соответствии с man-страницей exiftool 'Примеры переименования '
exiftool '-Directory<DateTimeOriginal' -d %Y/%m/%d dir
Я написал сценарий bash для копирования файлов прямо с моего iphone / ipad и копирования их в папки на целевом диске на основе даты создания образа. я использую программу под названием
exiftool
, найденную в http://www.sno.phy.queensu.ca/~phil / exiftool /Для данного изображения я извлекаю дату-время создания в массив с помощью
DATEBITS=( $(exiftool -CreateDate -FileModifyDate -DateTimeOriginal "$IMGFILE" | awk -F: '{ print $2 ":" $3 ":" $4 ":" $5 ":" $6 }' | sed 's/+[0-9]*//' | sort | grep -v 1970: | cut -d: -f1-6 | tr ':' ' ' | head -1) )
Где
$IMGFILE
- путь к файлу изображения. затем вы можете получить доступ к году, месяцу, дню и т. д., ИспользуяYR=${DATEBITS[0]} MTH=${DATEBITS[1]} DAY=${DATEBITS[2]} HR=${DATEBITS[3]} MIN=${DATEBITS[4]} SEC=${DATEBITS[5]}
Тогда тривиально создать каталог, в который нужно занести файл изображения