2015-08-18 3 views
1

Что я хочу сделать, это реорганизовать файлы в папке 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 '[email protected]/\([0-9]\{4\}\)/\([0-9]\{2\}\)/\([0-9]\{2\}\)[email protected]/\1-\2-\[email protected]')" 
    mv "$dir" "$newdir" 
    rmdir "$(dirname $dir)" 
    rmdir "$(dirname $(dirname $dir))" 
done 

Но он не решает, как получить дату создания, может быть, я должен получить метаданные из данных EXIF. Как это сделать?

+0

Возможно, вам придется установить некоторые инструменты, такие как exiv2 http://www.exiv2.org/ – ymonad

ответ

1

Я написал сценарий bash для копирования файлов прямо со своего iphone/ipad и скопировал их в папки на целевом диске на основе даты создания изображения. Я использую программу под названием exiftool найденную на http://www.sno.phy.queensu.ca/~phil/exiftool/

для данного изображения, я извлечь DateTime создания в массив с помощью

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]} 

это то тривиальное, чтобы создать каталог, который нужно копить файл изображения в

 Смежные вопросы

  • Нет связанных вопросов^_^