find是用于在整个文件系统中搜索文件的Unix / Linux命令行实用程序。有时我们需要搜索最近几天修改过的文件。假设您已在应用程序中修改了多个文件,但忘记跟踪已修改的文件。在这种情况下,find命令为您提供了一个基于文件修改来搜索文件的选项。您还可以搜索X天之前修改过的文件。

使用-mtimefind命令的option可以根据修改时间及其后的天数来搜索文件。天数可以使用两种格式。

①使用+天数来搜索X天之前修改过的文件
②使用–可以搜索最近X天修改过的文件的天数

以下示例将帮助您了解基于修改时间的文件搜索。

1、查找最近X天修改过的文件

使用以下命令搜索最近30天内修改的所有文件和目录。这里的点(.)用于在当前目录中搜索。并-30定义搜索最近30天修改过的文件。根据您的搜索要求更改此数字。

find . -mtime -30

您还可以基于文件类型自定义搜索。使用-type,然后使用-f(文件)或-d(目录)。下面的命令将仅搜索文件。

find . -type f -mtime -30

2、查找X天之前修改过的文件

以下命令将搜索30天之前修改过的所有文件和目录。这里的点(.)用于在当前目录中搜索。并+30定义搜索30天之前修改的文件。使用您的搜索首选项更改此数字。

find . -mtime +30

自定义搜索模式以仅使用来搜索文件-type f。或用于-type d 搜索目录。

find . -type f -mtime +30

3、Find应用实例

查找最近30分钟修改的当前目录下的.php文件

find . -name '*.php' -mmin -30

查找最近24小时修改的当前目录下的.php文件

find . -name '*.php' -mtime 0

查找最近24小时修改的当前目录下的.php文件,并列出详细信息

find . -name '*.inc' -mtime 0 -ls

查找当前目录下,最近24-48小时修改过的常规文件。

find . -type f -mtime 1

查找当前目录下,最近1天前修改过的常规文件。

find . -type f -mtime +1

4、访问时间、变更时间、修改时间

atime:访问时间(access time),指的是文件最后被读取的时间,可以使用touch命令更改为当前时间;  
ctime:变更时间(change time),指的是文件本身最后被变更的时间,变更动作可以使chmod、chgrp、mv等等;  
mtime:修改时间(modify time),指的是文件内容最后被修改的时间,修改动作可以使echo重定向、vi等等;