有关find -mtime这个参数的使用有比较多的坑,今天把这个问题在这里记录下来:


mtime参数的理解应该如下:

-mtime n 按照文件的更改时间来找文件,n为整数。

  • n 表示文件更改时间距离为n天
  • -n 表示文件更改时间距离在n天以内
  • +n 表示文件更改时间距离在n天以前

例:

  • -mtime 0 表示文件修改时间距离当前为0天的文件,即距离当前时间不到1天(24小时)以内的文件。
  • -mtime 1 表示文件修改时间距离当前为1天的文件,即距离当前时间1天(24小时-48小时)的文件。
  • -mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)之外的文件
  • -mtime -1 表示文件修改时间为小于1天的文件,即距离当前时间1天(24小时)之内的文件

为什么-mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间48小时之外的文件,而不是24小时之外的呢? 因为n值只能是整数,即比1大的最近的整数是2,所以-mtime+1不是比当前时间大于1天(24小时),而是比当前时间大于2天(48小时)。