EXIF renamer shell script
Script, which rename all argumented jpg files into YYYY-MM-DD-###.jpg format (### is 001~999)
Required jhead
#!/bin/bash
# rename files from exif info into format YYYY-MM-DD-###.jpg 
# where ### is number between 001 and 999
# required: jhead, sed, grep, dirname, mv
# johniez, http://johniez.com
# init version, no safety controls - backup your data before ;)

PHOTO_COUNT=0
LAST_DATE=0

if [ $# -lt 1 ]; then
	echo "Error: missing arguments"
	echo "Usage: $0 file1.jpg file2.jpg .."
	exit 2
fi

for i in $*; do
	NEW_DATE=`jhead "$i" | grep 'File date' | sed -e 's/.*: \(.*\) .*$/\1/' -e 's/:/-/g'`

	if [ "$NEW_DATE" == "$LAST_DATE" ]; then
		PHOTO_COUNT=$((PHOTO_COUNT+1))
	else
		PHOTO_COUNT=1
		LAST_DATE=$NEW_DATE
	fi

	DIR=`dirname "$i"`

	if [ $PHOTO_COUNT -lt 10 ]; then
		 mv "$i" "${DIR}/${NEW_DATE}-00${PHOTO_COUNT}.jpg"
	elif [ $PHOTO_COUNT -lt 100 ]; then 
		mv "$i" "${DIR}/${NEW_DATE}-0${PHOTO_COUNT}.jpg"
	else
		mv "$i" "${DIR}/${NEW_DATE}-${PHOTO_COUNT}.jpg"
	fi
done