背景: 
每日构建的东西,按日期放到不同的文件夹里。如今天的构建放到2015-06-01里,明天的就放到2015-06-02里,依次类推。时间久了,需要一个脚本删除N天前的文件夹。(本例中N=7,即删除一周前的构建)。 
下面直接上代码,Linux版:

#! /bin/bashhistoryDir=~/test/
today=$(date +%Y-%m-%d)echo "---------today is $today-----------"tt=`date -d last-week +%Y-%m-%d`echo "next is to delete release before $tt"tt1=`date -d $tt +%s`  #小于此数值的文件夹删掉#echo $tt1 for file in ${historyDir}*do
    if test -d $file
        then
        name=`basename $file`        #echo $name
        curr=`date -d $name +%s`        if [ $curr -le $tt1 ]            then
                echo " delete $name-------"
                rm -rf ${historyDir}${name}
        fi
    fidone1234567891011121314151617181920212212345678910111213141516171819202122

注意事项: 
1,historyDir=~/test/后面一定要带/,否则在后面的遍历文件夹时for file in ${historyDir}*会对应不上。

2,在linux下通过today=$(date +%Y-%m-%d)获得格式为2015-06-01类型的日期,通过

tt1=`date -d $tt +%s`11

得到×××的时间戳。当然也可以在获得时间的时候就用$(date +%s)这样直接得到的就是时间戳,不用再转换了,但是日期是默认的年月日小时分秒的格式转换的时间戳。 

3,test -d $file是为了检测$file目录是否存在