我正在执行一个命令,该命令会更新系统中未知位置的文件。/ /whatever 命令是什么,find
它locace
会告诉我哪个文件是系统中最后更新的?此命令需要知道不要查看proc
或任何其他不相关的位置。
答案1
这对你有帮助吗?
find / -mtime -5 | head -1
这会告诉您过去 5 分钟内哪些文件发生了更改并输出第一行。
当然,您可以指定它仅查找 png 文件,例如:
find / -name "*.png" -mtime -5 | head -1
/
搜索的开始目录在哪里- 在本例中是系统根目录,-name "*.png"
是搜索的过滤器,-mtime -5
是用于仅选择过去 5 分钟内修改的文件的过滤器,并| head -1
获取管道之前的所有内容的输出并仅打印第一行。
请记住,如果没有第一个过滤器,它也会检查目录,因此建议使用文件名过滤器。
编辑:如果您想排除一些文件夹,最好编写一个 bash 脚本,其中指定了 N 个文件夹进行搜索,然后对每个文件夹执行命令。
这意味着你的脚本将执行:
find /your/first/folder -name "*.png" -mtime -5 | head -1
然后
find /your/second/folder/location -name "*.png" -mtime -5 | head -1
等等..
答案2
你可以看到哪些文件现在被命令改变inotifywait
。
inotifywait -rme modify /folder/to/monitor/
这将列出所有修改的文件和目录/folder/to/monitor/
以及其所有子目录。
-r
:递归
-m
:监视文件系统直到被用户杀死
-e
:指定要监视的事件类型
你也可以告诉命令忽略一些目录
inotifywait --exclude '^/proc/' -rme modify /
意识到设置这样的监控整个文件系统将需要相当长的时间来设置,并且您可能还必须增加限制user_watches
(默认为 8k)。
请通过“/proc/sys/fs/inotify/max_user_watches”增加每个用户允许的 inotify 监视数量
在特定位置使用时此命令可能更合适。