Ripgrep

🔎 极速代码搜索,智能过滤无关文件

Development Tools榜 #1

Rust 编写的高性能递归搜索工具,自动跳过 .gitignore 文件,速度比 grep 快 5-10 倍

收藏
11k
安装
2.8k
版本
1.0.0
CLS 安全性认证2026-06-23
点击查看完整报告 >

使用说明

核心用法

ripgrep(rg)是 Rust 开发的命令行搜索工具,专注于在大型代码库中快速查找文本。默认递归搜索当前目录,自动识别 .gitignore 规则跳过无需扫描的文件,输出带语法高亮和行号的结果。

基础语法rg [选项] <模式> [路径]。支持正则表达式、固定字符串(-F)、整词匹配(-w)、大小写不敏感(-i)。文件类型过滤(-t py-T md)比传统 --include 更直观。上下文显示(-C N)、仅输出文件名(-l)、计数(-c)等选项覆盖日常 90% 需求。

高级特性:多文件类型联合查询、Glob 路径匹配(-g)、隐藏文件搜索(--hidden)、多行模式(-U)、仅提取匹配片段(-o)。可通过 --type-add 自定义文件类型,配置 ~/.ripgreprc 持久化偏好。

显著优点

1. 极致速度:基于 Rust 的并行搜索与内存映射,Benchmark 显示比 GNU grep 快 5-10 倍,特别擅长大型仓库
2. 智能默认:递归、彩色输出、行号、尊重 .gitignore、自动跳过二进制文件,开箱即用

3. 开发者友好:与 Git 工作流深度整合,支持 git show 管道搜索,类型过滤语法简洁

4. 跨平台:Windows、macOS、Linux 原生支持,主流包管理器一键安装

潜在缺点

  • GNU grep 兼容性:部分正则语法(如 POSIX 字符类)行为差异,脚本迁移需测试
  • 功能边界:本身不支持「就地替换」,需配合 sed/sd 等工具完成修改
  • 资源占用:极端大文件(GB 级)内存映射可能触发 OOM,--max-filesize 需手动限制

适合人群

  • 每日与代码库打交道的开发者(后端、DevOps、安全审计)
  • 需要替代 grep -r 但厌倦手动排除 node_modules 的用户
  • CI/CD 流水线中需要快速静态分析或日志检索的场景

常规风险

  • 隐私泄露:搜索历史可能包含敏感字符串(密钥、内网 IP),终端回显需注意
  • 误操作--no-ignore 可能扫描意外文件(如 .env),建议先用 -l 预览范围
  • 正则注入:自动化脚本中拼接用户输入构造模式,存在 ReDoS 风险,建议固定字符串模式(-F)处理不可信输入

安全与可信度

由 Rust 核心团队成员 Andrew Gallant(BurntSushi)维护,代码开源托管 GitHub,经过 Mozilla、Dropbox 等生产环境验证,无已知恶意行为历史。

安全解读

核心用法

ripgrep(rg)是一款基于 Rust 编写的极速文本搜索工具,本 Skill 提供完整的命令行使用指南。核心功能包括:

  • 基础搜索rg "TODO" 递归搜索当前目录,默认忽略 .gitignore 中的文件
  • 文件类型过滤-t py-t js 限定特定语言文件,-T md 排除特定类型
  • 高级匹配-w 全词匹配、-i 忽略大小写、-C 3 显示上下文、-U 多行模式
  • 性能优化:自动并行搜索、内存映射大文件、限制文件大小

显著优点

1. 速度极快:基于 Rust 与 SIMD 优化,通常比 grep -r 快 5-10 倍
2. 开发者友好:默认递归、彩色输出、显示行号、自动跳过二进制文件

3. Git 集成:原生尊重 .gitignore.gitignore_global 等规则

4. 智能类型识别:内置 70+ 文件类型映射,无需手写正则

5. 跨平台:支持 Linux、macOS、Windows,主流包管理器一键安装

局限性与风险

| 场景 | 说明 |
|------|------|
| 已安装依赖 | 需系统预装 `rg` 二进制,Skill 本身不捆绑 |
| 非代码场景 | 搜索纯文本/日志时,grep 某些参数更灵活 |
| 替换功能 | 原生仅支持预览替换,实际替换需配合 `sed` 或 `sd` |

适合人群

  • 后端开发:在大型代码库中快速定位函数、API 调用
  • DevOps/SRE:日志排查、配置搜索、批量文件分析
  • 开源贡献者:跨项目搜索 TODO/FIXME、理解代码结构
  • 全栈工程师:多语言项目(JS/Python/Go/Rust)统一搜索体验

常规风险提示

  • 命令执行风险:Skill 提供的示例均为安全只读搜索,但用户若自行修改为写入操作(如配合 xargs sed)需谨慎
  • 隐私扫描--no-ignore 会搜索被 Git 忽略的文件(如 .env),注意输出环境
  • 性能边界:极端大目录(百万级文件)建议配合 -g 限定路径范围

Ripgrep 内容

手动下载zip · 1.7 kB
SKILL.mdtext/markdown
请选择文件