网站首页 > 文章精选 正文
大家好,我是你们的Linux老司机。今天咱们聊个所有新手都躲不掉的痛点——找文件。是不是经常发生?
开发时想改个配置文件,结果在/etc、/usr、/home里翻了半小时;服务器日志爆了,想找个今天的access.log,却不知道藏在哪个子目录;甚至想删个临时文件,结果记不清路径……明明知道文件存在,就是找不到,急得直拍桌子!
别慌,今天咱就教你两个“文件搜索神器”——find和locate,掌握后3分钟定位目标,彻底告别“翻箱倒柜”式找文件!
一、实时搜索:find命令——精准但稍慢
find是Linux里最常用的“地毯式搜索”工具,它能按文件名、类型、大小、修改时间等条件,在指定目录下实时扫描文件。适合找“最近修改的”“特定类型的”或者“隐藏的”文件。
基础用法:find 搜索路径 条件。
举个栗子:
- 你想在当前目录(含子目录)下找所有.conf结尾的配置文件:
find . -name "*.conf"
(.代表当前目录,-name是按文件名匹配,*.conf是通配符,匹配任意字符+.conf) - 你想找/var/log目录下,今天修改过的日志文件(日志经常按天切割):
find /var/log -type f -mtime 0
(-type f限定是普通文件,-mtime 0表示最近24小时内修改过的文件) - 你想找/home目录下,大于100MB的大文件(清理磁盘必备):
find /home -type f -size +100M
(-size +100M中,+是“大于”,M代表兆;-size 100M是“等于”,-size -100M是“小于”)
进阶技巧:
- 忽略大小写:把-name换成-iname,比如find . -iname "Readme.md"(能匹配readme.md、README.MD);
- 按用户找:find /tmp -user root(找root用户创建的文件);
- 按权限找:find /etc -perm 644(找权限为644的文件,比如配置文件)。
二、快速搜索:locate命令——秒级但依赖数据库
如果你需要极速搜索(比如找系统自带的命令文档),locate才是王者。它基于系统预先生成的“文件索引数据库”,输入文件名就能秒出结果,适合找“名字明确的”文件(比如nginx.conf、passwd)。
基础用法:locate 文件名。
举个栗子:
- 你想找系统里所有叫passwd的文件(可能是密码配置文件):
locate passwd
一秒弹出几十个结果,包括/etc/passwd、/usr/bin/passwd等。 - 你想找包含“nginx”的配置文件(模糊搜索):
locate nginx.conf
直接列出所有路径里带nginx.conf的文件。
注意:数据库需要更新!
locate的索引数据库默认每天自动更新一次(比如凌晨),但如果你刚创建/删除了文件,它可能“反应不过来”。这时候需要手动更新数据库:
sudo updatedb(输入管理员密码后,等待几秒完成更新)。
三、find vs locate:怎么选?
场景 | 推荐工具 | 原因 |
找最近修改的文件(几小时内) | find | 实时扫描,能按时间精准过滤 |
找名字明确的系统文件 | locate | 秒级响应,无需等待扫描 |
找大文件/隐藏文件 | find | 支持按大小、类型、权限等复杂条件 |
刚创建/删除的文件 | 先updatedb再locate | 否则locate可能找不到最新变动 |
避坑指南:这3个错误别犯!
- find搜根目录太慢:find /会扫描整个系统,可能卡到怀疑人生。尽量指定小范围路径(比如/etc、/home);
- locate结果有冗余:数据库可能包含已删除文件的旧记录,更新数据库(updatedb)后再搜更准;
- 通配符别乱用:find的-name参数必须用引号包裹(比如"*.conf"),否则shell会把*当成通配符提前展开,导致错误。
总结:找文件的核心逻辑
Linux找文件就俩思路:
- 实时找、精准找:用find,按名字、时间、大小等条件“大海捞针”;
- 快速找、名字明确:用locate,依赖索引数据库“秒出结果”。
下次再遇到“文件去哪儿了”,先想想是“刚删的”还是“名字确定的”,再选工具,3分钟搞定!
猜你喜欢
- 2025-07-07 了解Linux目录,那你就了解了一半的Linux系统
- 2025-07-07 Linux 中,查找文件指令用法解析(linux查找文件命令locate)
- 2025-07-07 Linux系统下批量克隆目录结构,在另一台Linux下创建同样的目录
- 2025-07-07 跟老韩学Linux,find指令or的实例
- 2025-07-07 Linux系统操作命令之find最佳实践
- 2025-07-07 软网推荐:一个软件提取所有图标(如何提取软件图标)
- 2025-07-07 Linux:命令 stat 显示文件的状态信息,命令 find 搜索文件详解
- 2025-07-07 linux的查查大法(linux操作系统查询命令)
- 2025-07-07 浅聊find_package命令的搜索模式(Search Modes)
- 2025-07-07 shell中如何重新创建目录层次结构,但不包括文件?
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)