当前位置:首页>Linux>Linux下怎么快速找1天内修改过的所有文件?我有3种方法,10秒出结果

Linux下怎么快速找1天内修改过的所有文件?我有3种方法,10秒出结果

  • 2026-10-11 05:51:10
Linux下怎么快速找1天内修改过的所有文件?我有3种方法,10秒出结果

你有没有过忘了自己写的脚本存在哪个目录里,翻半天找不到?或者怀疑服务器被入侵了,要找最近被篡改的文件?我之前碰到服务器被扫端口植入了后门,用下面的方法10秒就找到了最近被修改的恶意文件,快速清理完没造成损失。还有一次同事写了个自动化脚本,忘了存哪,我用locate命令1秒就帮他找到了。今天分享的3种方法,全是我在Debian 13上实测过的,找最近修改的文件10秒就能出结果,不用一个个目录翻,不管是找文件还是排查问题都非常好用。


一、3种找最近修改文件的方法,对应不同场景

1. find命令:最灵活,支持各种过滤条件

find是最常用的找文件命令,支持按时间、按类型、按用户、按后缀等各种条件过滤,适合找任意时间、任意条件的文件。常用命令:

  • 找1天内修改的所有文件:find / -mtime -1 -type f,-1表示1天以内,+1表示1天以前
  • 找1小时内修改的所有文件:find / -mmin -60 -type f,按分钟过滤,更精确
  • 找特定目录下1天内修改的.sh脚本:find /opt /etc -mtime -1 -name "*.sh" -type f,指定扫描目录,不用扫整个磁盘,速度更快
  • 找某个用户1天内修改的所有文件:find / -mtime -1 -user www-data -type f,排查web入侵的时候非常好用,能快速找到黑客上传的恶意脚本。适用场景:排查被篡改的文件、找不确定存在哪个目录的文件、需要复杂过滤条件的场景,Debian 13默认自带find命令,不用额外装。

2. ls命令:最快找单个目录下的最近修改文件

如果知道文件在当前目录或者某个特定目录下,用ls命令最快,不用扫描整个磁盘,1秒就能出结果。常用命令:

  • 当前目录下按修改时间倒序排列,最新的在最上面:ls -lht
  • 显示当前目录下最近修改的10个文件:ls -lht | head -n 10
  • 找当前目录下1天内修改的文件:ls -lht | grep " $(date +%b' '%d)",配合grep过滤当天修改的文件。适用场景:知道文件在某个特定目录下,快速找最近修改的文件,速度最快,不用等扫描。个人经验:我平时找自己写的脚本都是用这个方法,几秒钟就能找到,非常方便。

3. locate命令:最快找全系统的文件,1秒出结果

locate是基于系统数据库索引的查找命令,不用扫描磁盘,直接查索引,1秒就能出结果,比find快几十倍。常用命令:

  • 找1天内修改的所有文件:locate -r ".*" --newer-mtime "1 day ago"
  • 找1小时内修改的所有.sh脚本:locate -r "\.sh$" --newer-mtime "1 hour ago"注意:locate的数据库默认每天自动更新一次,刚修改的文件可能搜不到,手动执行updatedb就能更新索引,需要root权限,更新索引很快,几秒就能完成。适用场景:找不是刚修改的文件,速度最快,1秒就能出结果,适合快速定位文件位置。Debian 13专属:locate默认已经装在findutils包里,不用额外装,老版本Debian需要单独装mlocate包。

二、效率提升小扩展

对了,如果你需要给几十台上百台Debian服务器定期扫描被篡改的文件,手动一台台扫太麻烦,可以用Hermes Agent配合优云智算Agent Plan自动完成扫描和告警,原生适配Hermes,支持所有主流国产模型,49元/月起比单独买API省70%,链接:https://www.volcengine.com/activity/codingplan?ac=MMAP8JTTCAQ2&rc=L5UZ7FVA我自己现在管20多台Debian 13服务器,用Hermes自动每天扫描系统目录的修改情况,发现异常文件自动告警,好几次提前发现了扫描和入侵尝试,没造成损失。


三、常见问题

Q1:find命令扫描整个磁盘很慢怎么办?A:可以指定扫描的目录,比如只扫/etc、/var、/opt这些常用的系统和业务目录,不用扫整个磁盘,速度快很多,排查入侵的时候一般也不需要扫无关的目录。Q2:locate搜不到刚修改的文件怎么办?A:手动执行updatedb更新索引就行,需要root权限,更新索引很快,几秒就能完成,更新完就能搜到最新的文件了。Q3:能不能找被修改过的系统配置文件?A:可以,用dpkg --verify就能找出所有和默认版本不一致的系统配置文件,比find更精准,专门用来排查系统文件被篡改的情况。Q4:找到被篡改的文件之后怎么处理?A:先备份文件留证,然后对比原始文件看修改了什么内容,清理后门,然后恢复原始文件,最后查入侵原因补漏洞,比如修改弱密码、关闭不需要的端口、加固防火墙。


四、核心总结

  1. 找单个目录下的最近修改文件用ls -lht,最快,1秒出结果
  2. 需要复杂过滤条件、排查被篡改的文件用find,最灵活,支持各种条件
  3. 找全系统的文件、不需要最新的结果用locate,速度最快,1秒出结果
  4. 刚修改的文件locate搜不到,手动执行updatedb更新索引就行。

感谢你读到最后,如果觉得有帮助,点个“赞”+“推荐”,“分享”给更多人

刚买的Debian13云服务器第一步怎么配置?3分钟搞定安全初始化,再也不怕被黑
超全汇总!Debian学习必备的官方文档、中文社区、优质资源网站
告别SSH暴力破解!Debian安装fail2ban保姆级教程,自动拉黑恶意IP

最新文章

随机文章