在日常开发或系统管理中,经常需要快速定位某个文件。图形界面虽然直观,但面对复杂目录结构时,效率远不如终端命令。掌握几个基础命令,能让你在终端中查找文件变得轻松高效。
find:最强大的文件搜索工具
find 是 Linux 和 macOS 终端中最常用的文件查找命令。它支持按名称、类型、大小、时间等多种条件搜索。
比如你想在当前目录及其子目录中查找名为 app.js 的文件,可以直接运行:
find . -name app.js
这里的 . 表示当前目录,-name 指定按文件名搜索。如果想忽略大小写,可以换成 -iname:
find . -iname APP.JS
按文件类型或大小筛选
有时候你只关心某一类文件。比如查找所有以 .log 结尾的日志文件:
find /var/log -name "*.log"
还可以结合文件大小来过滤。例如查找大于 100MB 的文件:
find ~ -size +100M
这会在家目录下找出所有超过 100MB 的文件,适合用来清理大文件。
使用 grep 快速搜索内容
如果你记得文件里的某段代码或文字,但忘了文件名,grep 就派上用场了。它可以搜索文件内容。
比如在项目中查找包含 api_key 的文件:
grep -r "api_key" .
-r 表示递归搜索子目录。加上 --include 参数还能限定搜索范围:
grep -r --include=*.py "def login" .
这条命令只会搜索 Python 文件中是否包含 def login 函数定义。
locate:极速查找已知文件
如果只是想快速找到某个已知名字的文件,locate 比 find 更快。它依赖系统维护的数据库,因此几乎瞬间返回结果。
例如查找系统中所有包含 nginx.conf 的路径:
locate nginx.conf
注意:locate 数据库不会实时更新,新创建的文件可能搜不到。可以运行 sudo updatedb 手动更新索引。
实际场景:忘记配置文件在哪
假设你在调试一个服务,知道配置文件叫 config.json,但不确定放在哪个项目里。直接从家目录开始找:
find ~ -name config.json
几秒后就能看到所有匹配结果。如果结果太多,可以加个限制,比如只查最近修改过的:
find ~ -name config.json -mtime -7
这样就只列出过去 7 天内修改过的 config.json,缩小排查范围。
这些命令组合起来,足以应对大多数查找需求。熟练使用它们,你会发现终端比鼠标点点更快更准。