了解使用 atime、ctime 和 mtime 进行查找

了解使用 atime、ctime 和 mtime 进行查找

所以,我明白了标题中三个想法之间的区别。

  1. atime -- 访问时间=上次打开文件的时间

  2. mtime -- 修改时间=上次修改文件内容的时间

  3. ctime -- 更改时间 = 上次修改文件 inode 的时间

所以,大概当我输入类似的内容时

find ~/Documents -name '*.py' -type f -mtime 14

将找到所有匹配的所有以 .py 结尾且在过去 2 周内修改过的文件。什么都没有显示出来...

所以我尝试

find ~/Documents -name '*.py' -type f -atime 1400

它应该匹配过去 1400 天内打开的任何内容(以 .py 结尾并具有类型文件),但仍然没有任何内容。

我是否误解了文档?例如,这是否意味着 1400 天?

相关帖子:

find 的 mtime 和 ctime 选项

答案1

是的,-mtime 14正好意味着 14。请参阅 GNU 手册中该部分的顶部find(标记为“TESTS”),其中显示“数字参数可以指定为 [...]”:

Numeric arguments can be specified as

+n     for greater than n,

-n     for less than n,

n      for exactly n.

请注意,“小于”的意思是“严格地小于”,so-mtime -14表示“最后修改时间为当前时间,13 天或更早”,-mtime +14意思是“最后修改时间为当前时间,15 天或更早”。

答案2

find ~/Documents -name "*.py" -type f -mtime 14 - 恰好 14 天前

find ~/Documents -name "*.py" -type f -mtime +14 - 超过 14 天前

find ~/Documents -name "*.py" -type f -mtime -14 - 不到 14 天前

你的陈述中的其余部分似乎是正确的。

答案3

这些 -*time 语句返回满足以下算法的文件(其中小时是文件被修改的时间):

为了

查找-mtimen

int(hours/24) == n

查找-mtime-n

int(hours/24) < n

查找-mtime+n

int(hours/24) > n

因此,例如 find -mtime 1

将匹配 24-47 小时前的文件

查找-mtime +0

将匹配 24 小时或更早的文件

相关内容