#!/bin/bash ################################ # Written by Jeremy Green # http://www.rhythmandcode.com/ ################################ function makeFullName(){ FULLNUM='' if [ $1 -lt 10 ]; then FULLNUM='000'${1} elif [ $1 -lt 100 ]; then FULLNUM='00'${1} elif [ $1 -lt 1000 ]; then FULLNUM='0'${1} else FULLNUM=${1} fi } DIR=. DEST='date' if [ $# -eq 0 ]; then echo "Usage : hdr_dir_watcher.sh setsize [destination_dir watch_dir]" exit 0; fi SETSIZE=3 if [ $# -ge 1 ]; then echo "set size: $1" SETSIZE=$1 fi DIR=. DEST=. if [ $# -ge 2 ]; then echo "moving to custom dir: $2" DEST=$2 fi if [ $# -ge 3 ]; then echo "watching custom dir: $3" DIR=$3 fi CHECK_INTERVAL=1.0 DATESTRING=$(date +%Y_%m_%d) if [ $DEST = 'date' ]; then DEST=../$DATESTRING fi DIRNUM=1 cd $DIR #CURDIR=pwd #echo "watching $CURDIR" echo "hit ctl-c to end" while true do sleep $CHECK_INTERVAL FILECOUNT=$( find ./ -maxdepth 1 -type f | wc -l ) let "FILEMOD=$FILECOUNT % $SETSIZE" if [ "$FILEMOD" -eq 0 ]; then if [ ! -d $DEST ];then mkdir $DEST fi while [ $( find ./ -maxdepth 1 -type f | wc -l ) -ge $SETSIZE ] do DIREXISTS=true while $DIREXISTS do makeFullName $DIRNUM if [ -d $DEST/$FULLNUM ]; then ((DIRNUM++)) else DIREXISTS=false fi done mkdir $DEST/$FULLNUM #echo $(ls -1 *.* | wc -l) echo $FULLNUM IMGNUM=0; for img in $( find ./ -maxdepth 1 -type f | sort -n ) do if [ $IMGNUM -lt $SETSIZE ];then mv $img $DEST/$FULLNUM echo "moved $img to $DEST/$FULLNUM (ctl-c to end)" ((IMGNUM++)); fi done ((DIRNUM++)); done fi done