#!/bin/bash # # rename-photos: rename JPEG photos as exported from digital cameras # by date (e.g. 2002/04/02/11-42-22.jpg) # # usage: rename-photos *.JPG # # if environment variable W is defined, uses that as base dir; # otherwise, uses current dir. # # Gerald Oskoboiny, 11 June 2003 # # $Id: rename-photos,v 1.3 2008-08-14 05:30:13 gerald Exp $ # temp=/tmp/rename-photos.$$ if [ -z $W ]; then target=. else target=$W fi # rename multiples to my preferred format (hh-mm-ss-n.jpg) epinfo -rf $target/%Y/%m/%d/%H-%M-%S.jpg $@ | \ tee $temp | \ grep ^rename | \ grep '\.[0-9][0-9][0-9]$' | \ sed 's/.* -> //' | \ sed 's/.\(...\)$/ \1/' | \ while read f n ; do mv -i $f.$n $(echo $f | sed "s/\.jpg/-$(echo $n | sed 's/^0*//').jpg/") if [ -f $f ]; then mv -i $f $(echo $f | sed 's/\.jpg/-0.jpg/') fi done # # changelog: # # $Log: rename-photos,v $ # Revision 1.3 2008-08-14 05:30:13 gerald # name multiple frames per second *-0.jpg *-1.jpg so they sort better; # keep a copy of the temp file around so we can see what went where # # Revision 1.2 2008-04-21 01:57:03 gerald # better handling of multiple photos taken in the same second; # this rev was dated Apr 6 15:51 # # #