在 Linux 中查找最近 N 分钟内修改的文件

在对代码或服务器进行故障排除时,查找最近修改的文件是一个有用的参数。

修改了哪些日志文件? 当我运行这个命令时,哪些文件发生了变化? 多功能的 find 命令可以帮助您获得答案。

下面的命令将在当前目录中查找最近五分钟内修改过的所有文件。

find . -type f -mmin -5

那只是一个 example. 让我分享一下如何详细列出在过去 n 分钟/天内访问和创建的文件。

在 Linux 中查找修改过的文件

在跳到解释部分之前,首先,我想分享一下如何使用 find 命令查找在最后 n 分钟修改的文件的语法。

find [path] -type f -mmin n

这里,n 表示您要检查的分钟数。 但您也有一些选择,例如:

  • -n 将检查在少于 n 分钟内修改的文件
  • +n 将检查超过 n 分钟修改的文件
  • n 将检查恰好在 n 分钟前修改的文件

同样,您也可以使用 -mtime 代替 -mmin 检查几天前修改的文件。

查找最近 5 分钟内修改的文件

所以假设我想在 var 目录中列出最近 5 分钟内刚刚修改过的文件; 我的命令如下:

find .var/ -type f -mmin -5
查找最近 5 分钟内修改过的文件

如您所见,它只是抛出文件,我认为给定的列表没有用且可读。

在这种情况下,我将追加 -ls 拥有更清晰的外观和更多信息,例如文件所有者、权限和修改时间。

find .var/ -type f -mmin -5 -ls
使用 -ls 以获得更好的可见性

?find 命令允许对其结果进行一些操作。 这 -ls 是此类行动之一。 对于 ls 命令,您不一定需要使用 find-exac 或 xargs。

查找最近 n 天内修改的文件

要查找过去 n 天而不是 n 分钟内修改过的文件,您只需使用 -mtime 代替 -mmin.

假设我想查找最近一天修改过的文件,我的命令是:

find /media/sagar/HDD/Downloads -type f -mtime -1 -ls
查找最近一天修改过的文件查找最近一天修改的文件

查找超过 X 天的文件

您可以使用 mtime 参数来查找最近未修改的旧文件。

假设您想在当前目录中查找超过 30 天的文件。 使用这个命令:

find . -mtime +30

查找最近 n 分钟或几天内修改过的目录

find 命令还可以带来修改后的目录列表。

只需将 -type f 更改为 -type d,这将让您搜索目录而不是文件。

为了演示,我将展示如何获取 /.cache/mozilla/ 下的修改目录列表firefox:

find .cache/mozilla/firefox/ -type d -mmin -5 -ls
查找最近 n 分钟内修改过的目录列出最近 5 分钟内修改的目录

同样,您可以找到几天前工作的目录。

find Downloads/ -type d -mtime -1 -ls
查找最近 n 天修改过的目录查找最近 1 天修改的目录

查找最近访问或创建的文件

那么如何查找最近 n 分钟访问或创建的文件呢?

要查找在过去 n 分钟内访问过的文件,您必须使用 -amin 代替 -mmin.

要在我的首选目录中查找过去 5 分钟内访问的文件,我将使用给定的命令:

find /media/sagar/HDD/Downloads -type f -amin -5 -ls
查找最近 n 分钟内访问的文件 查找最近 5 分钟内访问的文件

同样的方法,你也可以通过使用找到最近 n 分钟内创建的文件 -cmin 代替 -amin.

find /media/sagar/HDD/Downloads -type f -cmin -5 -ls
查找最近 n 分钟内创建的文件查找最近 5 分钟内创建的文件

结论

基本上,用例没有限制。 您可以将其从 -n 修改为 +n,并且可以搜索较旧的文件。 使用 ctime 你可以得到最近创建的或古老的文件。

学习基础知识可以让您根据需要使用 find 命令。 相信本教程让您对使用 find 命令的时间参数有足够的了解。