Bash 通过访问/修改时间查找文件

示例

在ext文件系统上,每个文件都有与之关联的存储的访问,修改和(状态)更改时间-要查看此信息,您可以使用stat myFile.txt; 使用find中的标记,我们可以搜索在特定时间范围内修改的文件。

要查找的文件被修改的最后2小时内:

$ find . -mmin -120

要查找的文件还没有被修改的最后2小时内:

$ find . -mmin +120

上面的例子中只在搜索改性时间-以在搜索一个CCESS倍,或Ç上吊倍,使用a,或c相应。

$ find . -amin -120
$ find . -cmin +120

通用格式:

-mmin n:文件被修改ñ分钟前
-mmin -n:文件被修改少于ñ分钟前
-mmin +n:文件被修改超过ñ分钟前


查找文件被修改内最后2天:

find . -mtime -2

查找文件没有被修改内最后2天

find . -mtime +2

分别将-atime和-ctime用于访问时间和状态更改时间。

通用格式:

-mtime n:文件被修改nx24小时前
-mtime -n:文件均小于修改nx24小时前
-mtime +n:文件已超过修改nx24小时前

查找在2007-06-07至2007-06-08日期范围内修改的文件:

find . -type f -newermt 2007-06-07 ! -newermt 2007-06-08

查找从1小时前到10分钟前的一系列时间戳(使用文件作为时间戳)中访问的文件:

touch -t $(date -d '1 HOUR AGO' +%Y%m%d%H%M.%S) start_date
touch -t $(date -d '10 MINUTE AGO' +%Y%m%d%H%M.%S) end_date
timeout 10 find "$LOCAL_FOLDER" -newerat "start_date" ! -newerat "end_date" -print

通用格式:

-newerXY reference:将当前文件的时间戳与参考进行比较。XY可以具有以下值之一:(at访问时间),mt(修改时间),ct(更改时间)等等。reference是要比较指定的时间戳(访问,修改,更改)的文件名,或者是描述绝对时间的字符串