![Linux find 和 -mtime 用法](https://linux22.com/image/704815/Linux%20find%20%E5%92%8C%20-mtime%20%E7%94%A8%E6%B3%95.png)
我有两个不同的基于 Linux 的系统,其中 find 命令似乎没有按预期工作。
我有一个目录。在其中我运行...
ls -l
系统返回...
drwxr-xr-x 2 panopticon36 panopticon36 4096 May 22 12:28 folder1
drwxr-xr-x 2 panopticon36 panopticon36 4096 May 22 12:28 folder2
drwxr-xr-x 2 panopticon36 panopticon36 4096 May 22 12:25 folder3
drwxr-xr-x 2 panopticon36 panopticon36 4096 May 24 09:52 folder4
今天是 2017 年 5 月 24 日。
在同一个目录中,如果我运行......
find . -mtime +1 -type d
系统没有返回任何内容。
据我了解,find 命令应查找当前目录“.”中所有超过 1 天的“-mtime +1”目录“-type d”。因此...
folder1
folder2
folder3
据我所知,应该全部列出。我负责的两个系统都表现出这种行为。我做错了什么或遗漏了什么?是否有什么东西修改了目录,导致 ls -l 无法反映正确的修改日期?我还可以尝试其他方法来解决问题吗?欢迎大家提供帮助。
答案1
由于mtime
四舍五入的方式很奇怪,+1
所以表示“48 小时或更长时间”。手册页中记录了这一点。
记忆的方法是从最基本的用法开始:-mtime 1
这意味着该文件是在 24 小时前加上任何分数之前访问的(例如 24+23 小时也匹配)。由此可以“逻辑地”得出+1
和的-1
含义。