#生成YYYY-MM-DD/目录并在目录下创建文件
#!/bin/bash for I in {1..365} ;do #创建过去一年以日期命名的目录 DIR=`date -d "-$I day" +%F` mkdir /data/test/$DIR for j in {1..10} ;do #在目录下创建10个随机命名的文件 touch /data/test/$DIR/$RANDOM.log done done
#移动文件到YYYY-MM/DD/目录下
#!/bin/bash DIR=/data/test #定义变量为/data/test路径 cd $DIR #到/data/test路径下 for DIR1 in * ;do #因为现在已经在/data/test目录下,所以直接使用*表示/data/test下所有文件 YM=`echo $DIR1 |cut -d"-" -f1,2` #取出年月部分的关键字段,并赋值给变量YM DD=`echo $DIR1 |cut -d"-" -f3` #取出日的关键字段,并赋值给DD [ -d $YM/$DD ] || mkdir -p $YM/$DD &> /dev/null #判断目录否存在,不存在则创建 mv $DIR1/* $YM/$DD #移动文件到目录下 done