FIND命令不列出-mtime中定义的文件

时间:2015-01-29 20:34:49

标签: linux bash

我试图在我定义的目录中查找超过10天的所有.log文件但是当我比较find命令的发现和目录中的内容时,有特定的文件没有被找到命令。任何帮助/方向将不胜感激。我已经遍布Stackoverflow找到答案,但找不到符合我问题的答案。

今天的日期/时间是:01/29/2015 14:33:00

我正在使用的命令是:

find /var/log/app/*.log -type f -mtime +10 ! -name 'Verification1.log'

当我查看文件列表时,此命令发现我没有在列表中看到此文件:

文件名:file.log 修改日期:2015年1月18日下午5:59

如果-mtime在24小时内工作,为什么不在我的文件列表中选择此文件?任何帮助/方向将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

-mtime +10意味着超过10天。但是,find不计算分数。因此,例如,输出将包含11天或12天的文件,但不包括10.9天的文件。

考虑

  

今天的日期/时间是:01/29/2015 14:33:00

使用-mtime +10时,只会包含早于01/18/2015 14:33:00的文件。因此,您的1/18/2015 5:59 PM文件未包含在内,因为5:59pm14:33:00之后,而不是之前。

文档

man find

中指定了整数但不是分数的比较方法
   -mtime n
          File's data was last modified n*24 hours ago.  See the comments for -atime to understand how round‐
          ing affects the interpretation of file modification times.

   -atime n
          File was last accessed n*24 hours ago.  When find figures out how many 24-hour periods ago the file
          was last accessed, any fractional part is ignored, so to match -atime +1, a file has to  have  been
          accessed at least two days ago.