find(mmin)给出了意想不到的结果

find(mmin)给出了意想不到的结果

我原本想知道find上周修改了哪些文件(在意外的结果让我开始我在这个问题中描述的任务之前),所以我运行了以下命令(10080 分钟 = 1 周):

find . -mmin -10080 -exec ls -lh {} \;

但令我大吃一惊的是,一连串看似永无止境的文件飞过屏幕。

我尝试缩小范围,结果发现了这一点:

  • find . -mmin -6704 -exec ls -lh {} \;不返回任何内容,而
  • find . -mmin -6705 -exec ls -lh {} \;返回大约 200 个文件,所有这些文件看起来都像是旧文件。

我以为我的版本可能有问题find,可能-mmin使用了小时或天之类的,而不是通常的几分钟。但我等了 5 分钟,得到了预期的结果:

  • find . -mmin -6709 -exec ls -lh {} \;没有返回任何内容,而
  • find . -mmin -6710 -exec ls -lh {} \;返回相同的200个文件。

这个分钟数指向的是Sat Apr 22, 5:20 AM(我的当地时间)的准确时间。

这些文件中的大多数都是在 2022 年的某个时间修改的,但也有一些甚至更旧的文件,例如这个:

$ stat 20130624_141025.jpg 
  File: 20130624_141025.jpg
  Size: 2949509     Blocks: 5768       IO Block: 4096   regular file
Device: 10303h/66307d   Inode: 4066298     Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/  user)   Gid: ( 1000/  user)
Access: 2023-03-26 04:35:47.518978140 +0200
Modify: 2013-06-24 11:10:25.000000000 +0200
Change: 2022-10-09 03:28:01.112446868 +0200
 Birth: -

我不明白为什么像这样的文件似乎已经根据find(但不根据stat)在上周六进行了修改。

什么可能导致这些结果?

以下是journalctl当时的记录:

april 22 05:16:40 host rtkit-daemon[1258]: Supervising 2 threads of 2 processes of 1 users.
april 22 05:16:40 host rtkit-daemon[1258]: Supervising 2 threads of 2 processes of 1 users.
april 22 05:16:53 host rtkit-daemon[1258]: Supervising 2 threads of 2 processes of 1 users.
april 22 05:16:53 host rtkit-daemon[1258]: Supervising 2 threads of 2 processes of 1 users.
april 22 05:17:01 host CRON[906135]: pam_unix(cron:session): session opened for user root by (uid=0)
april 22 05:17:01 host CRON[906136]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
april 22 05:17:01 host CRON[906135]: pam_unix(cron:session): session closed for user root
april 22 05:17:19 host rtkit-daemon[1258]: Supervising 2 threads of 2 processes of 1 users.
april 22 05:17:19 host rtkit-daemon[1258]: Supervising 2 threads of 2 processes of 1 users.
april 22 05:17:29 host rtkit-daemon[1258]: Supervising 2 threads of 2 processes of 1 users.
april 22 05:17:29 host rtkit-daemon[1258]: Supervising 2 threads of 2 processes of 1 users.
april 22 05:20:08 host dbus-daemon[1639]: [session uid=1000 pid=1639] Activating via systemd: service name='org.freedesktop.Tracker1.Miner.Extract' unit='tracker-extract.service' requested by ':1.2' (uid=1000 pid=1635 comm="/usr/libexec/tracker-miner-fs " label="unconfined")
april 22 05:20:08 host systemd[1627]: Starting Tracker metadata extractor...
april 22 05:20:08 host tracker-extract[906637]: Set scheduler policy to SCHED_IDLE
april 22 05:20:08 host tracker-extract[906637]: Setting priority nice level to 19
april 22 05:20:08 host dbus-daemon[1639]: [session uid=1000 pid=1639] Successfully activated service 'org.freedesktop.Tracker1.Miner.Extract'
april 22 05:20:08 host systemd[1627]: Started Tracker metadata extractor.
april 22 05:20:11 host gnome-shell[6085]: Warning: disabling flag --expose_wasm due to conflicting flags
april 22 05:20:18 host systemd[1627]: tracker-extract.service: Succeeded.
april 22 05:20:23 host /usr/lib/gdm3/gdm-x-session[1725]: (EE) event11 - SYNA2393:00 06CB:7A13 Touchpad: kernel bug: Touch jump detected and discarded.
april 22 05:20:23 host /usr/lib/gdm3/gdm-x-session[1725]: See https://wayland.freedesktop.org/libinput/doc/1.15.5/touchpad-jumping-cursors.html for details
april 22 05:25:59 host gnome-shell[6085]: Warning: disabling flag --expose_wasm due to conflicting flags
april 22 05:29:54 host systemd[1627]: vte-spawn-10cbca7f-6f32-4715-9d7b-dd17ed636519.scope: Succeeded.

中也有相同的信息。我在或/var/log/syslog中没有看到任何相关信息。如果您需要其他相关日志或信息,请告诉我。dmesgauth.log

尽管这是一个 *啊哼* 一天中不寻常的时间,事实上,我当时醒着,正在使用电脑,所以我可能触发了日志中可能包含的所有内容。我只是不明白是什么导致了这些奇怪的结果find......?

查找版本:find (GNU findutils) 4.7.0)
内核/发行版:5.15.0-67-generic #74~20.04.1-Ubuntu SMP

谢谢你!

答案1

您正在运行ls -lh而没有find过滤掉目录,因此如果列出的文件的父目录在该日期被修改,那么find将匹配这些目录,ls -lh使用这些目录作为参数运行,从而列出内容这些目录,向您显示这些文件。

使用-type f(或可能! -type d)以便过滤掉目录,或者使用-ls操作而不是运行-exec ls -lh {} \;,或ls -ldh,列出目录本身而不是其内容。

相关内容