Мне помогает простой скриптик ;-)
Скриптик считывает дату создания raw файла (фотографии), и на основе этих данных создает дерево каталогов такого вида:
..
└─ 2016
├── 02
│ └── 12
│ ├── GIMP
│ │ └── TSV_7521.xcf
│ ├── JPG
│ │ └── TSV_7521.jpg
│ └── NEF
│ └── darktable_exported
│ ├── TSV_7521.jpg
│ ├── TSV_7521.png
│ └── TSV_7521.png.xmp
└── 03
└── 19
├── GIMP
│ └── TSV_7661.xcf
├── JPG
│ └── TSV_7661.jpg
└── NEF
└── darktable_exported
└── TSV_7661.jpgДостаточно внести минимум изменений (под свой фотоаппарат и каталог фотографий), вставить флешку с фотографиями и запустить скрипт.
#!/bin/sh
#
# GPL3 $-)
#
LOG_FILE="${HOME}/photo_err.log" ; rm -f ${LOG_FILE}
echo "*********************** `date +%Y:%m:%d` ***********************" > ${LOG_FILE}
error_handler()
{
case $1 in
1) echo "ERROR: No file or directory ${PHOTO_BASE}" >> ${LOG_FILE}
exit 1
;;
2) echo "INFO: Create directory ${MOUNT_PATH}" >> ${LOG_FILE}
sudo mkdir -m 755 -p ${MOUNT_PATH}
;;
3) echo "ERROR: No devices found tagged with: LABEL=\"NIKON D610\"" >> ${LOG_FILE}
exit 3
;;
4) echo "ERROR: Not installed media-gfx/exiv2" >> ${LOG_FILE}
exit 4
;;
5) echo "INFO: Mount devices ${FLASH_D610} in directory ${MOUNT_PATH}" >> ${LOG_FILE}
sudo mount ${FLASH_D610} ${MOUNT_PATH}
;;
6) echo "ERROR: I can not mount devices ${FLASH_D610} in directory ${MOUNT_PATH}" >> ${LOG_FILE}
exit 6
;;
7) echo "INFO: Error copying file $2" >> ${LOG_FILE}
;;
8) echo "ERROR: Error unmounting devices ${FLASH_D610}" >> ${LOG_FILE}
;;
esac
}
PHOTO_BASE="/mnt/images" ; [[ -d ${PHOTO_BASE} ]] || error_handler 1
MOUNT_PATH="/media/D610" ; [[ -d ${MOUNT_PATH} ]] || error_handler 2
FLASH_D610=`sudo blkid|grep D610|awk '{print $1}'|sed 's/://g'` ; [[ -z ${FLASH_D610} ]] && error_handler 3
EXIV2=`/usr/bin/which exiv2 2>/dev/null` ; [[ -z ${EXIV2} ]] && error_handler 4
[[ -z `mount|grep ${FLASH_D610}` ]] && error_handler 5
[[ -z `mount|grep ${FLASH_D610}` ]] && error_handler 6
for FL in `find ${MOUNT_PATH} -type f -iname '*.[jn][pe][gf]'` ; do
OUT_PATH_BASE=${PHOTO_BASE}/`${EXIV2} ${FL}|grep 'Image timestamp'|awk '{print $4}'|sed 's/:/\//g'`
mkdir -p ${OUT_PATH_BASE}/{NEF,GIMP,JPG}
cp -vf ${FL} ${OUT_PATH_BASE}/`echo ${FL}|cut -d '.' -f2|tr a-z A-Z` || error_handler 7 ${FL}
done
sudo umount ${MOUNT_PATH} || error_handler 8
echo "************************** DONE **************************" >> ${LOG_FILE}