find命令 – 之查找指定时间内修改过的文件
如果我们要查找linux下指定时间内做过改动的文件,我们可以用find命令,其实find命令的功能很丰富,下面我们通过几个简单的例子来学习下find命令的简单用法:
find /opt -iname "*" -atime 1 -type f [-print] #找出 /opt 下一天前访问过的文件
选项 OPTIONS
所有的选项都是返回真值,总会被执行,除非放在表达式中执行不到的地方。因此为了更好的易读性,最好把它们放在表达式的开头部分。
参数 | 功能 |
---|---|
daystart | 从当日起始时开始而不是从24小时之前,计算时间(for -amin, -atime, -cmin, -ctime, -mmin, and -mtime)。 |
amin n | 对文件的最近一次访问是在 n 分钟之前。 |
anewer file | 对文件的最近一次访问比 file 修改时间要晚。如果命令行中 -follow 在 -anewer 之前,(也只有在这种情况下 -anewer会受 -follow 的影响)。 |
atime n | 对文件的最近一次访问是在 n*24 小时之前。 |
cmin n | 对文件状态的最近一次修改是在 n 分钟之前。 |
cnewer file | 对文件状态的最近一次修改比 file 修改时间要晚。如果命令行中 -follow 在 -cnewer 之前,(也只有在这种情况下-cnewer 会受 -follow 的影响)。 |
ctime n | 对文件状态的最近一次修改是在 n*24 小时之前。 |
mmin n | 对文件数据的最近一次修改是在 n 分钟之前。 |
mtime n | 对文件数据的最近一次修改是在 n*24 小时之前。 |
mtime | 指定时间曾被改动过的文件,意思是文件內容被更改过。 |
ctime | 指定时间曾被更改过的文件,意思是文件权限被更改过。 |
atime | 指定时间曾被存取过的文件,意思是文件被读取过(时间是以 24 小时为一个单位,而不是按天数计算的)。 例如: 2017/11/28 12:00 时间开始找一天內的,会列出 2017/11/27 12:00 ~ 2017/11/28 12:00 时间內的文件 |
示例
1. 找出 3 天”以前”被改动过的文件 (前第三天以前 → 2017/11/25 12:00 以前的文件) (> 72 小时)
find /var/log/ -mtime +3 -type f
2.找出 3 天內被改动过的文件 (2017/11/25 12:00 ~ 2017/11/28 12:00 內的文件) (0 ~ 72 小时內)
find /var/log/ -mtime -3 -type f
3.找出前第 3 天被改动过的文件 (2017/11/24 12:00 ~ 2017/11/25 12:00 內的文件) (72 ~ 96 小时)
find /var/log/ -mtime 3 -type f
4.找出第 3 天被改动过的文件 (也可以这样写)
find /var/log/ -mtime +2 -mtime -4 -type f