linux搜索内容命令
linux搜索内容命令详细介绍
在 Linux 中搜索内容通常分为搜索文件内容和搜索文件名 / 属性两类,以下是最常用的命令及场景:
一、搜索文件内容(文本匹配)
1.
grep(最经典)
用途:在文件中搜索指定字符串,支持正则表达式。
语法:
bash
选项 文件名/目录
常用选项:
-R:递归搜索目录下的所有文件-i:忽略大小写-n:显示匹配行的行号-l:仅列出包含关键词的文件名-v:反向匹配(排除含关键词的行)-A 2:显示匹配行的后 2 行(After)-B 2:显示匹配行的前 2 行(Before)
示例:
bash
/etc/*.conf
file.txt
2.
ack(程序员友好)
特点:默认递归搜索,自动跳过二进制文件和忽略文件(如 .gitignore),支持语法高亮。
示例:
bash
ack src/
3.
ag(The Silver Searcher,高速)
特点:比 grep 快 10 倍以上,适合大项目,支持正则和多文件搜索。
示例:
bash
ag
二、搜索文件名 / 属性(非内容)
1.
find(全能搜索)
用途:按文件名、大小、时间、权限等搜索文件。
语法:
bash
搜索路径 条件 操作
常用条件:
-name "*.log":搜索扩展名是 log 的文件-iname "readme.md":忽略大小写搜索-size +10M:搜索大于 10MB 的文件-mtime -7:搜索 7 天内修改的文件
示例:
bash
/home
f
2.
locate(快速文件名搜索)
特点:基于系统文件索引(需 updatedb 生成),秒级响应,但不实时。
示例:
bash
/etc/nginx.conf
三、组合使用(高级场景)
搜索内容并删除文件:
bash
f
搜索进程名(含关键词):
bash
总结对比
| 场景 | 推荐命令 | 示例场景 |
|---|---|---|
| 文件内容搜索 | grep/ag |
代码中找接口地址、日志中查错误 |
| 文件名 / 属性搜索 | find/locate |
找昨天修改的图片、大于 1G 的视频 |
| 程序员友好搜索 | ack/ag |
项目中批量替换、查找注释(TODO) |
根据需求选择工具,grep 和 find 是必掌握的基础命令,ag 和 ack 适合提升效率。