模拟场景:
在一个目录下存在不同天产生的大量文件,而且文件命名没有日期的标识,如何把这些文件按照日期分到不同的文件夹。
按照文件修改的日期也就是mtime把文件做区分
> date
Tue Dec 20 14:04:04 CST 2016
修改文件的mtime
/sysout> touch -c -t 12180010 file{101..200}
12180010表示12月18号0点10分
/sysout> find -mtime +1 -type f | more
./file135
./file168
。。。
核实文件个数
/sysout> find -mtime +1 -type f | wc -l
100
/sysout> l file102
-rw-r--r-- 1 testuser testuser 0 Dec 18 00:10 file102
创建备份文件的日期
> date --date=‘2days ago‘ +%Y%m%d
20161218
备份脚本
> vi baklog.sh
#!/bin/bash
LOGDIR=/sysout
LOGDATE=`date --date=‘2 days ago‘ +%Y%m%d`
BAKDIR=/backup/$LOGDATE
cd $LOGDIR
mkdir $BAKDIR
find -mtime +1 -name "file*" -exec mv {} $BAKDIR \;
本文出自 “xiaoxiaozhou” 博客,请务必保留此出处http://xiaoxiaozhou.blog.51cto.com/4681537/1885651
原文地址:http://xiaoxiaozhou.blog.51cto.com/4681537/1885651