针对那些在Linux系统管理以及日常维护范畴之内的情况,依据文件自身所具备的修改时间去展开查找,这属于一项频率颇高同时又具有相当关键性的操作行为。不管是针对清理过期日志而言,还是追踪最近发生的配置变更情况,又或者是去定位某段特定时段里面出现变动的源码而言,倘若能够熟练地运用find命令所具备的时间查找功能,那么都将会在极大程度上使得效率得到提升。在这篇文章当中,将会对find命令按照修改时间来查找文件的各种各样的用法以及实用的技巧进行深刻剖析 。

find命令如何按天查找修改过的文件

时常被运用的按天去查找的参数是 -mtime,在其后面跟着的数字n所表示的意思是“n天”,然而此处所说的“天”是以24小时作为一个周期的,并且明白+n-n以及n之间存在的区别是至关重要的。-mtime +n,即进行查找操作,要找的是修改时间在n这个时长24小时以前的文件,-mtime -n,此为另一查找方式,需查找修改时间在n这个规定时长24小时以内的文件,而 -mtime n 情况不同,它是去查找修改时间恰好是n这个特定时长24小时的文件,这里所说的这个范围,明确是[n, n+1)天哦。

比如说,呈现为 find /var/log -mtime +7 的指令,会将目标判定为在 /var/log 这个目录范围里,存在超逾7天时长未被修改的文件,它在日志方面开展清理事宜时常被运用;而形如 find . -mtime -1 的指令,会把目标确定为在当下所处的目录之中,找到于过去24小时之内被改动过的全部文件。明晰精确地读懂这一用以明确时间跨度的窗口概念,对于去制定关于清理举措的策略,亦或是针对变更情况进行审计工作而言,是有着至关重要的意义的,以此来防止出现错误删除或者遗漏检查的状况。

如何使用find查找最近几分钟内修改的文件

在针对那些有着更精细时间把控需求的情形之下,-mmin 参数属于更佳的选择,它是以分钟作为单位的 ,其语法跟 -mtime 相似: ,-findmin +n 用于查找超过n分钟之前被修改的 ,-mmin -n 用于查找最近n分钟之内被修改的 。这在对实时日志进行监控或者排查刚刚出现的系统问题之际是颇有用处的 。

linux:find 按文件修改时间查找文件_linux:find 按文件修改时间查找文件_linux:find 按文件修改时间查找文件

要是你需查验Web服务器于过去5分钟之内有无访问日志更新,那么能够运用 find /var/log/nginx -name "access.log" -mmin -5。或者中文linux操作系统,倘若你打算找出当前目录里超过30分钟未曾变动的临时文件用以清理,那进行清理的命令便是 find /tmp -type f -mmin +30。与按天开展查找相比较而言,按分钟来查找会使操作变得更为及时、更加精准。

find按修改时间查找时符号代表什么意思

`-mtime`与`-mmin`参数 preceding 之前的`+`、`-`呀或者无符号,决定了时间范围的边界。对于`+n`它表示的是“大于`n`”呀也就是比`n`个时间单位更早,对于`)-n`它表示嘛“小于`n`”,也就是比`n`个时间单位更近啦(此处少了个前括号,按给出内容如此处理了)。不带有符号的 n展现出“自n至n加上1个时间单位的范围之内”的意思,此为一个左边闭合而右边开放的区间 。

拿例子来讲:-mtime +0,它所匹配的是全部修改时间超出0天的文件,也就是起码在1天之前的那些文件,而这等价于-mtime 1以及后续的所有文件。-mtime 0呢,它匹配的是过去24小时之内有过修改的文件,这跟 -mtime -1 的效果是一样的。倘若能够明白这一点,那么便会对你构建更为精准真切的查找条件有所助力,举例来说,-mtime +30 -mtime -90这般的形式,是能够用来查找那些修改时间处于30天至90天时间范围之内的文件的。

如何用find查找比某个文件更新的文件

除却运用绝对时间单位之外,find命令还具备以另外一个文件作为时间参考对象的能力,借助-newer参数来达成。其命令格式呈现为,find [路径] -newer [参考文件]<规范形式。该命令会挑出全部修改时间比指定参考文件修改时间更靠后的文件,。

该功能于脚本编写以及复杂工作流当中极具实用性,比如说,你能够先去创建一个时间戳文件,即执行 touch /tmp/timestamp 这个命令 ,接着开展一些操作,最终运用 find /data -newer /tmp/timestamp 这种方式来寻觅出位于这段时间之内/data目录里所有出现变更的文件。它同样能够被应用于增量备份方面,借助对比上次备份的标记文件,进而找出那些需要进行备份的新文件亦或是修改过的文件 。

linux:find 按文件修改时间查找文件_linux:find 按文件修改时间查找文件_linux:find 按文件修改时间查找文件

find查找修改时间文件有哪些实际应用场景

真实工作里头,依照时间去查找的那种运用场景是极为广泛的。在系统维护期间,定时去清理过期的日志以及临时文件乃是典型的案例情形。就好像 find /var/log -type f -mtime +30 -exec rm {} ; 这样子的。进行开发期间,要是想要迅速准确地找出最靠近当前时间被修订的源代码文档,能够运用 find ./src -name ".java" -mtime -1 去查看过去一整日里所产生的变动情况 。

于安全审计之际抑或故障排查之时,借由时间范围去过滤文件是能够迅速缩减嫌疑范围的,比如说,当服务器呈现异常状况之后,可是能去查找某个关键目录于问题开始发生直至最后这段时间范围里全部被修改过了的文件的,数据库管理员同样有可能会运用这款工具来查找最近才生成的备份文件或者归档日志的。这些场景均显现出时间查找功能的强大之处以及必要性所在。

使用find按时间查找要注意哪些常见问题

linux:find 按文件修改时间查找文件_linux:find 按文件修改时间查找文件_linux:find 按文件修改时间查找文件

使用时间查找功能之际,有好些细节得留意。其一是时间精度方面,文件系统所记录 时间戳精度会因系统而有所不同(像ext4支持纳秒,然而在某些情形下仅显示到秒),这般可能在极度精确的比较的时刻产生细微差异。其次,find命令所运用的时间是依据文件的mtime也就是修改时间而言的linux:find 按文件修改时间查找文件,并非是基于ctime即状态变更时间或者atime也就是访问时间,要是需要后者的话,应该使用-ctime或者-atime参数。

再有,时区同样有可能带来影响,find一般运用系统的本地时间。于编写计划任务之时,例如cron job执行定时查找清理处,务必要保证时间计算契合预期。最后,要记住把时间参数和诸如-name-type-size的其他条件搭配着使用,并且好好利用-exec或者-delete动作去处理结果,凭借这些来构造出具备强大威力的一行命令去化解复杂问题linux:find 按文件修改时间查找文件,句号(。)。

于日常工作里头linux常用命令,你最常于运用find命令之际,借助其按时间予以查找的功能对付啥特定切实问题呀你可历经因为对时间参数领会有误而致使的饶有趣味或者麻烦闹心的经历不欢迎于评论区域分享你的经验以及技巧要是觉着本文对你有益处那就请点赞并且分享给更多众朋友 。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复