linux使用find和crontab命令定期清理过期文件

2019-10-13 12:45:56于丽

find —— 找些乐子

man find 给出的 find 命令的一般形式是:

find [-H] [-L] [-P] [-D debugopts] [-Olevel] path ... [expression]

其中 [-H] [-L] [-P] [-D debugopts] [-Olevel] 很少会用到。因此,find 命令的一般形式可以简化为 find path ... [expression];亦即,在一些路径(默认递归地包含子路径)中找到合适的文件,然后根据 expression 执行相应动作。

  path ...: find 命令查找的路径

  expression: 具体形式是 -parameters [-exec -ok]

      -parameters 有很多,待下一节具体介绍常用的参数

      -exec command {} ; 执行一条 Shell 命令

      -ok command {} ; 同 -exec 的作用,不过在执行每条命令前,都会提示用户确认

常用的参数

  -name : 按照文件名查找文件,接受通配符

      find . -name "*.cpp": 在当前目录 (.) 及子目录下递归地查找所有后缀为 .cpp 的文件,并打印在标准输出中

  -perm : 按照文件权限查找文件

      find . -perm 755: 在当前目录 (.) 及子目录下递归地查找所有权限为 755 的文件(目录),并打印在标准输出中

      find . -perm 644 -name "*.cpp": 在当前目录及子目录下 (.) 递归地查找所有权限为 644 的 .cpp 文件,并打印在标准输出中

  -group : 按照文件的所属组查找

  -user :  按照文件的所有者查找

      find . -user search: 在当前目录 (.) 及子目录下递归地查找所有 search 账号所属的文件,并打印在标准输出中

  -atime, -mtime, -amin, -mmin : a 开头的表示「按照上次访问时间查找」,m 开头的表示「按照上次修改时间查找」;-n 表示 n 时间内,+n 表示 n 时间以前

      find . -atime +7: 在当前目录 (.) 及子目录下递归地查找所有上次访问在 7 天以前的文件,并打印在标准输出中

      find . -mmin -10: 在当前目录 (.) 及子目录下递归地查找所有上次修改在 10 分钟以内的文件,并打印在标准输出中

  -newer file1 ! file2 : 查找比 file1 新但是比 file2 旧的文件

  -type [b|d|c|p|l|f] : 按照文件类型查找

      b: 块设备文件

      d: 目录

      c: 字符设备文件