如何找到我的 Linux 机器上最后更新的文件?

如何找到我的 Linux 机器上最后更新的文件?

我正在执行一个命令,该命令会更新系统中未知位置的文件。/ /whatever 命令是什么,findlocace会告诉我哪个文件是系统中最后更新的?此命令需要知道不要查看proc或任何其他不相关的位置。

答案1

这对你有帮助吗?

find / -mtime -5 | head -1

这会告诉您过去 5 分钟内哪些文件发生了更改并输出第一行。

当然,您可以指定它仅查找 png 文件,例如:

find / -name "*.png" -mtime -5 | head -1

/搜索的开始目录在哪里- 在本例中是系统根目录,-name "*.png"是搜索的过滤器,-mtime -5是用于仅选择过去 5 分钟内修改的文件的过滤器,并| head -1获取管道之前的所有内容的输出并仅打印第一行。

请记住,如果没有第一个过滤器,它也会检查目录,因此建议使用文件名过滤器。

mtime 参考

编辑:如果您想排除一些文件夹,最好编写一个 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 监视数量

在特定位置使用时此命令可能更合适。

相关内容