在Linux系统管理与开发操作中,快速定位文件是高频刚需,不管是查找配置文件、日志文件还是脚本文件,选对查找命令都能节省大量时间。那么Linux怎么查找某个文件?请看下文。
find:实时、精准、功能强
适合需要最新结果、按权限/大小/时间等条件筛选的场景。基本语法是:
find [搜索路径] [选项] [动作]
查当前目录下所有 .log 文件:find . -name "*.log"
忽略大小写:find /var -iname "access.log"
查最近 7 天修改过的 .conf 文件:find /etc -name "*.conf" -mtime -7
查大于 10MB 的文件:find /home -size +10M
找到后直接删除(慎用):find ./tmp -name "*.tmp" -delete
locate:极速、依赖数据库、结果可能滞后
它不扫描磁盘,而是查/var/lib/mlocate/mlocate.db这个预建索引库,所以快得多,但数据库默认只每天更新一次。
查文件名含 “nginx” 的所有路径:locate nginx
精确匹配完整文件名:locate -b '\nginx.conf'
更新数据库:sudo updatedb
第一次用locate前,通常要先执行一次sudo updatedb
如何选择?看具体需求
要最新结果、带复杂条件→用find
只知道文件名片段,想秒出结果,且不介意一两天内的延迟→用locate
不确定是否存在,先locate快速试探,再用find精确验证→组合使用很高效