假如在一个目录中保留最近30天的文件,30天前的文件自动删除;
#find /tmp -mtime +30 -type f -name *.sh[ab] -exec rm -f {} ;/tmp _设置查找的目录;
1、mtime +30 _设置时间为30天前;
2、type f _设置查找的类型为文件;
3、name *.sh[ab] _设置文件名称中包含sha或者shb;
4、exec rm -f _查找完毕后执行删除操作;
提示:将此命令写入crontab后即可自动完成查找并删除的工作。
另外的方法大同小异:#find /tmp -mtime +30 -type f | xargs rm -rf。
『贰』 linux如何删除某个时间之前的过期文件,在一个文件夹内部的
find 命令可以完成这一需求,比如删除3天前的所有以“.log”结尾的文件回:
find /文件路径 -name "*.log" -mtime +2 -exec rm {} ;
说明:
1. 文件路径是答目标文件所在路径;
2. -name 设定目标文件名,建议采用,否则可能误删其他文件;
3. -ctime 文件最后一次修改时间,后面只能用整数,单位为天,同时,还有atime,mtime,amin,cmin,mmin等时间参数可选,具体请查看帮助;
4. 时间说明如下图(随手画的,大概是这个意思),所以删除三天前的文件要用+2
5. -exec 表示需要执行的命令,{}代表find找到的内容,";"是固定写法表示结束-exec,
所以例子的"-exec rm {} ;" 就表示对find找到的符合条件的文件执行删除操作
『叁』 Linux下,如何将最后修改时间在某个时间之前的文件删除掉
noneki网友复回答得不错!制
第一步touch是要建立一个最后修改时间为“ 1月1号,0分0秒的”的比对文件time_file,
第二步, 用find查找,比time_file “不”新的所有文件,然后删除。
提示:如果是要根据修改时间,则把newer改成cnewer,如果是根据访问时间,则把newer改为anewer