shell脚本删除特定时间的备份文件

在上篇关于shell脚本的博客中,我介绍了一种覆盖工作目录并自动备份已存在文件的方法(详见:http://www.zhizhi123.com/?p=85)。但用的次数多了之后,我们的工作目录可能会产生很多类似tags_bak_2015-08-22的文件。如何将它们删除呢?下面贴出脚本:

#author admin@zhizhi123.com

#欢迎访问 back.zhizhi123.com

#!/bin/sh

backup_dir=/alidata/www/sh/useful-shell-script/www/

RegExp=’*_bak_*‘

day=-5

rmbackup()

{

filelist=\`find $1 -type f -name $2 -mtime $3\`

for file in $filelist

do

        echo '正在删除备份文件'$file

        rm -f $file

done

echo '删除完成'

}

rmbackup $backup_dir $RegExp $day

其中变量backup_dir定义了备份文件所在的目录,RegExp定义了要匹配的备份文件正则,day=+5表示文件更改时间距现在 5天以前。这些变量可以根据你自己的需要进行更改。