日期:2014-05-16 浏览次数:20830 次
#!/bin/sh
#Name delFileAsDate.sh
#Creation date: 2010-10-30
#Author: Frank Wu
?
?
Usage(){
#{{{
?? ? ? ?echo 'Usage: sh '$0' <dirList name>' 1>&2
?? ? ? ?echo 'e.g.' 1>&2
?? ? ? ?echo ' ?sh '$0' /home/username/workspace/delFileAsDate ?/home/username/workspace/dirList' 1>&2
}
#}}}
if [ $# ?-lt 1 ]; then
?? ? ? ?Usage && exit 1
fi
?
?
handleDir(){
? ? ? if ls $1/* 2> tmp > tmp
?? ? ? ? ? ? ? ?then
?? ? ? ? ? ? ? ? ? ? rm -rf $1/tmp #Delet tmp file
?? ? ? ? ? ? ? ? ? ? file=`ls $1`
?? ? ? ? ? ? ? ? ? ? for name in $file
?? ? ? ? ? ? ? ? ? ? do
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?if [ -d $1/$name ];
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?then
handleDir $1/$name
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?else
#echo $1/$name
handleFile $1/$name
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?fi
? ?done ? ? ? ? ? ?
?? ? ? ? ? ? ? else
rm -rf $1/tmp
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?echo "remove ....... Empty dirtionary"$1
#rm -rf $1
fi
}
?
handleFile(){
?? ? ? ?fName=$1
?? ? ? ?if [ -f $fName ];
?? ? ? ?then
?? ? ? ? ? ? ? ?eval `ls -l $fName | awk {' print "day="$7'}`
?? ? ? ? ? ? ? # echo $day
flag=false
? ? ? ?for days in ${ArrDay[*]}
do
#echo "array[i] = "$days?
if [[ "$day" == "$days" ]];
then
? flag=true
fi
done
if [[ "$flag" == "false" ]];
then
handleLastModify $fName
#echo "can removing file"
#rm $fName
fi ?
?? ? ? ?fi
}
?
handleLastModify(){
flName=$1
nowTime=$(date +%s)
((limit=$lastModify*86400))
eval `stat $flName | grep Change|awk '{print "changeDate="$2}'`
#echo $flName
changeTime=`date -d "$changeDate" +%s`
((marginTime=$nowTime-$changeTime))
if (($marginTime > $limit)); then
#rm $flName
echo "delete file .....changeDate= "$changeDate"...fileName ="$flName
fi
}
?
#handleLastModify /home/wusx/test/fds/fdfd
?
dirF