作为一个Linux系统管理员,我们经常会维护或者配置Linux中的各种配置文件等,由于文件太多,有时候忘记了修改了啥文件,这个时候我们想查看一下最近修改和配置的文件到底是哪些。那么有没有啥好的办法来查找最近修改的文件呢?下面我们就来看一看如何查找最近修改的文件。
1,find命令
1.1 find 命令允许我们以分钟或天为单位来查找文件。分钟用 -mmin 定义,天可以用 -mtime 定义.在分钟或者天后面还可以定义搜索条件,通过跟上加号(+)指定数值来查询什么时间之前的文件。例如,要搜索1分钟(或者24分钟)之前修改过的文件,请使用-mmin(例如:+1,+24等),要搜索1天前或者2天前修改的文件,请使用-mtime (例如+1,+2等)。要搜索在持续时间内修改的文件,请使用带有带有减号(-)持续时间值(例如:-1,-24)等。例如下面的例子是发现home路径下所有在一分钟之内修改的文件。
接下来看一下一分钟之前修改过的文件。
下面是一天内修改过的文件。
接下来看一下一天前修改过的文件。
1.2 find 命令加上参数-newermt,我们可以获取早于指定日期修改的文件。比如我们查找在3月22号的文件。
我们也可以使用这个参数的组合表达式,就比如在什么时间不在另外一个日期的文件。例如下面在2022年3月22的,不在2022-03-23
下面来看一下newermt如何实现查找在几分钟之内或者在几分钟之前的修改文件,或者是在几天前或者在几天内修改文件的方式。以下是查找24小时内修改的文件。
以下是查找10分钟之前到现在修改的文件。
以下是查找1天之前到现在修改的文件。
以下是查找昨天到现在修改的文件。
2,ls命令
我们知道 ls 命令列出了有关特定目录中的文件的信息。它的用法之一是显示文件的格式,并按修改时间对输出进行排序。例如,以下命令用于展示文件的列表通过时间展示。
我们可能无法像 find 命令那样列出最近修改过的文件。但是,我们可以通过在ls命令的结果上应用grep命令来根据特定的日期或时间来过滤上述输出结果。例如,下面是过滤日期为Mar 22号修改的文件
下面的示例是用于过滤时间是10:的文件。
请注意,默认情况下,find 命令是递归的。为了在 ls 命令上启用递归功能,我们还需要添加 R(大写)参数。
总结:通过使用find和ls命令可以查找最近修改的文件,但是发现通过find是能够更好的查找最近修改的文件,ls命令则需要在后面添加许多过滤条件以及控制参数来查找最近修改的文件。