#!/bin/sh
year=`date +%Y`
cd /path
find -type f -mtime +7 -exec rm -rf {} \;
#上为删除path目录下更改时间7天之前的日志文件
还有如下例子:
#删除path目录下更改时间7天之内2天之前的文件名中带request日志文件
find path/ -type f -mtime -7 -mtime +2 \( -name "*request*" -o -name "http_*" \) -exec ls -lht {} \;
#删除path目录下更改时间7天之前的文件名中带年份(2020)日志文件
find path/ -type f -mtime +7 -name "*$year*" -exec ls -lht {} \;
#查找/opt目录下空文件并删除
find /opt -type f -a -empty -exec rm -rf {} \;或 rm -rf `find /opt -type f -a -empty `
参数:
-type f 查找文件 : f 文件 d 目录
-mtime -n +n :按文件更改时间查找 -n 指几天以内 +n 几天以前
-atime -1 查找最后24小时访问过的文件 -2 是48小时
-ctime 按文件创建时间来查找 -n +n
-size 按文件大小 +n m(兆)- n 字节是c
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。