我原本想知道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
中没有看到任何相关信息。如果您需要其他相关日志或信息,请告诉我。dmesg
auth.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
,列出目录本身而不是其内容。