Linux下查找和删除7天以前的文件

2020-05-12   144 次阅读


记一次linux下清理过期日志的过程;
环境说明:删除/var/log/下7天以前的.log文件;
用到的命令:find、rm;

命令示例:find /var/log/ -mtime +7 -name "*.log" -exec rm  {} \;
  • 说明:
    • find :查找命令
    • /var/log/ :需要查找的文件路径
    • -mtime +7 :按文件更改时间来查找文件,-7指7天以内,+7指7天以前
    • -name "*.log" :你要查找的文件名,可用通配符
    • -exec :将find查到的文件执行command操作,{} 和 \;之间有空格
    • rm {} \; :需要执行的command操作
扩展:
find ~ -name "*.txt"                         #在$HOME中查找找.txt文件并显示
find ./ -name "[A-Z]*"                       #查找找以大写字母开头的文件
find ./ -name "[a-z][a-z][0–9][0–9].txt"     #查找找以两个小写字母和两个数字开头的txt文件
find ./ -type f -perm 755                    #在当前目录查找找权限为755的文件
find ./ -type d -perm 755                    #在当前目录查找找权限为755的目录
find ./ -perm 755                            #在当前目录查找找权限为755的文件和目录
find ./ -perm 755 -type f -exec ls -l {} \;  #查找找当前目录权限为755权限的文件并执行ls -l 命令
find ./ -type l                              #查找当前目录下的链接文件
find ./ -size +10                            #查找长度超过期作废10块的文件(1块=512字节)
find /etc/ -name "passwd" -exec grep -i "user1" {} \;#查看user1用户是否存在
find ./ -name test* fprint file.txt          #在当前目录下查找以test开头的文件,并把结果输出到file.txt中
find ./ -name ab* -o -name cd*               #查找以ab或cd开头的文件
find /home -mtime -2                         #在/home下查找最近两天内改动过的文件
find /home -atime -1                         #查找1天之内被存取过的文件
find /home -mmin +60                         #在/home下查找60分钟前改动过的文件
find /home -amin +30                         #查找最近30分钟前被存取过的文件
find /home -newer tmp.txt                    #在/home下查找更新时间比tmp.txt近的文件或目录
find /home -anewer tmp.txt                   #在/home下查找存取时间比tmp.txt近的文件或目录
find /home -user user1                       #列出/home目录内属于用户user1的文件或目录
find /home -uid +501                         #列出/home目录内用户的识别码大于501的文件或目录
find /home -group user1                      #列出/home内组为user1的文件或目录
find /home -gid 501                          #列出/home内组id为501的文件或目录
find /home -nouser                           #列出/home内不属于本地用户的文件或目录
find /home -nogroup                          #列出/home内不属于本地组的文件或目录
find /home -name tmp.txt -maxdepth 4         #列出/home内的tmp.txt 查找时深度最多为3层
find /home -name tmp.txt -mindepth 3         #从第2层开始查找
find /home -empty                            #查找大小为0的文件或空目录
find /home -size   +512k                     #查找大于512k的文件
find /home -size   -512k                     #查找小于512k的文件
find /home -links   +2                       #查找硬连接数大于2的文件或目录
find /tmp  -name tmp.txt -exec cat {} \;     #查找tmp下名为tmp.txt的文件并cat它
find /tmp  -name tmp.txt -ok   rm {} \;      #查找tmp下名为tmp.txt的文件并删除它,-ok:删除前提示
find  / -amin    -10                         #查找在系统中最后10分钟访问的文件
find  / -atime   -2                          #查找在系统中最后48小时访问的文件
find  / -group   user1                       #查找在系统中属于user1组的文件
find  / -mmin    -5                          #查找在系统中最后5分钟里修改过的文件
find  / -mtime   -1                          #查找在系统中最后24小时里修改过的文件
find  / -nouser                              #查找在系统中属于作废用户的文件
find  / -user    user1                       #查找在系统中属于user1这个用户的文件

脑无理想 枉活一世