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

在上篇关于shell脚本的博客中,我介绍了一种覆盖工作目录并自动备份已存在文件的方法(详见:https://www.zhizhi123.com/blog/2015/05/09/shell-copy-and-bak-dir/)。但用的次数多了之后,我们的工作目录可能会产生很多类似tagsbak2015-08-22的文件

shell

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

#author admin@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天以前。这些变量可以根据你自己的需要进行更改。

ABOUT THE AUTHOR

织织

前大厂程序员、AI 工具开发者,正在记录从技术到产品的实践。

关于作者
DISCUSSION

评论与讨论

留下你的想法