#!/usr/bin/perl use Image::ExifTool 'ImageInfo'; $usage = "Usage: $0 \n"; $uploadDefault = "s400/upload" ; $sortDefault = "s400" ; $uploadDir = $ARGV[0] ; $sortDir = $ARGV[1] ; if ($sortDir eq "" ) { print "No sort directory specified, using [$sortDefault]\n"; $sortDir = $sortDefault ; } !(-d $sortDir) and die "Cannot open sort dir [$uploadDir]\n$usage" ; if ($uploadDir eq "" ) { print "No upload directory specified, using [$uploadDefault]\n"; $uploadDir = $uploadDefault ; } opendir ( UPDIR, $uploadDir) || die "Cannot open upload dir [$uploadDir]\n$usage" ; while ( $img = readdir( UPDIR ) ) { if ( $img =~ /.*\.[jpg|JPG]/ ) { $info = ImageInfo("$uploadDir/$img"); $date = $$info{"CreateDate"}; #print "the date for the image is [$date]\n"; $date =~ /^(\S*)\:(\S*)\:(\S*) (\S*)\:(\S*)\:(\S*)$/ ; $year = $1 ; $month = $2 ; $day = $3 ; $hour = $4 ; $min = $5 ; $sec = $6 ; $mvDir = $sortDir . "/" . $year ; mkdir $mvDir, 0777 unless -d $mvDir; $mvDir = $mvDir . "/" . $month ; mkdir $mvDir, 0777 unless -d $mvDir; $mvDir = $mvDir . "/" . $day ; mkdir $mvDir, 0777 unless -d $mvDir; $add = 1; $imgMv = $img ; #only sort files if they aren't already there if (-e $mvDir."/".$imgMv ) { $cmd = "diff $uploadDir/$img $mvDir/$imgMv"; $rc = `$cmd`; #diff returns a line if they differ if ( $rc ne "" ) { #now we have 2 files with the same name that are #different, so change the name of the new file to be #copied while (-e $mvDir."/".$imgMv ) { $imgMv = $img."_$add"; $add ++; } $cmd = "cp $uploadDir/$img $mvDir/$imgMv" ; system($cmd); }#if diff }#if exist else { #didn't exist $cmd = "cp $uploadDir/$img $mvDir/$imgMv" ; system($cmd); } }#if jpg } #while updir