find命令的时间参数

发布时间 2024-01-12 14:11:01作者: 阿星777

find命令可以按照时间条件查找文件。

find {path} -newermt {time}

其实find -newermt的真正形式是find -newerXY {variable},旨在找到一些X属性比variable的Y属性更早的文件。其中X指代find的目标文件属性,Y代表参照属性。X可选a,c,m;Y可选a,c,m,t。acm意义分别为atime(访问时间),ctime(改变时间
查找指定日期范围的文件精确到秒,例如:
find -type f -name *.* -newermt '2021-03-25 08:00:00' ! -newermt '2021-03-27 21:00:00'|xargs ls -l

1. 时间参数 mtime atime ctime mmin cmin amin
mtime atime ctime 参数单位为天(24小时)
指定这几个项后面的数值,可以为三种情况:a) 正号 b) 负号 c)不带符号。

负值是less than,正值是greater than;但是带+于不带,却有些微妙的差异。

+,会把不足一个时间单位的时间取下整,再与条件值比较。

例子:找到2天以前的所有日志
find /path -type f -name "*.log" -mtime +1

找到1天-2天内的所有日志,总长度为1天
find /path -type f -name "*.log" -mtime 1

找到1天内所有日志,总长度为1天
find /path -type f -name "*.log" -mtime 0

找到2天内所有日志,
find /path -type f -name "*.log" -mtime -1


-atime n
  n: 当前时刻往前的第 (n + 1) 个24小时
+n: 当前时刻往前,第 (n + 1) 个24小时之前的所有时间
-n: 当前时刻往后,第 n 个24小时之后的所有时间


mmin cmin amin单位为分钟,+,-符号意义同atime n

找到2小时(120分钟)以前的所有日志
find . -type f -name "*.log" -mmin +120

找到119-120分钟内的日志,总长度1分钟
find . -type f -name "*.log" -mmin 120

找到现在到120分钟内的日志,
find . -type f -name "*.log" -mmin -120