日期:2014-05-16  浏览次数:20730 次

LINUX shell language ----folder build
Linux server 上一文件夹下有好多一时间为命名的文件(TAIL_201103040042.zip),看这很多很乱,为了更好的管理,写一个脚本,一年为目录放之文件,年下分月,每个月执行一次脚本,将建立当前月的前一个月的文件夹,如 :这个月为2011年1月,执行脚本奖励2010年12的文件夹.文件夹 ../2010/12-2010
脚本如下 :

#/bin/bash
echo "================script stat================"
#取得当前月的前一个月的日期(%Y%m%d是为了在后面取年的时候少2位)
folder=$(date -d "-1 month" +%Y%m%d)
#取得年
diryear=`date --date="$folder" +%Y`
#取得月
dirmon=`date --date="$folder" +%m`
#年文件夹子文件夹月
desfol=$diryear/$dirmon-$diryear
#建立文件夹
test -d $diryear || mkdir $diryear
test -d $desfol || mkdir $desfol

#echo $diryear$dirmon
#转移文件
mv $(find . -name "*_$diryear$dirmon*" -print) $desfol
##这个是为了 防止当前文件夹下的子文件夹有相同名称的文件而加 –mxdepth 1
#mv $(find . -maxdepth 1 -name "*$diryear$dirmon*" -print) $desfol