news 2026/10/1 9:40:56

ripgrep 快速上手:命令行文件搜索的安装方法与 4 个高频场景

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ripgrep 快速上手:命令行文件搜索的安装方法与 4 个高频场景

ripgrep 快速上手:命令行文件搜索的安装方法与 4 个高频场景

【免费下载链接】ripgrepripgrep recursively searches directories for a regex pattern while respecting your gitignore项目地址: https://gitcode.com/GitHub_Trending/ri/ripgrep

ripgrep(缩写 rg)是一款基于正则表达式的文件搜索工具,递归扫描目录时自动遵守 .gitignore。反直觉的一点:它默认不搜的东西,比它搜的更值得先了解。装好、会用、会排查"搜不到",这一篇就够。

先搞懂 ripgrep 的三个默认行为

rg 搜得快又干净,全靠三条默认过滤规则;不先懂它们,后面排查"搜不到"全靠猜。

  • 遵守 .gitignore:git 忽略的文件(构建产物、依赖目录等)直接跳过。好处是结果只跟版本管理的内容相关;副作用是文件一旦进了 .gitignore,默认就搜不到。
  • 跳过隐藏文件:以点开头的文件和目录(如 .git、.config)不进入扫描。结果保持干净,但隐藏目录里的内容需要显式打开才能搜。
  • 跳过二进制文件:图片、压缩包、可执行文件一律不扫,避免刷屏和拖慢速度。想搜压缩包里的一段文本,默认是搜不到的。

按需求选择安装方式:包管理器还是源码编译

装之前先想清楚要哪个版本:求稳用包管理器一行搞定,要最新特性或 PCRE2 再自己编译。

求稳路线:包管理器。依赖自动处理、随时可升级,版本可能比官方发布略旧,对大多数人足够:

系统安装命令
macOSbrew install ripgrep
Ubuntu / Debiansudo apt-get install ripgrep
Arch Linuxsudo pacman -S ripgrep
Fedora / RHELsudo dnf install ripgrep
Windowschoco install ripgrep或scoop install ripgrep

尝鲜路线:源码编译。共四步:

  1. 克隆仓库:git clone https://gitcode.com/GitHub_Trending/ri/ripgrep
  2. 用 rustup 安装 Rust 工具链,并加载环境变量
  3. cargo build --release编译出二进制
  4. 把target/release/rg放进 PATH 中的目录,如/usr/local/bin

想要 PCRE2(支持后向引用等高级语法),编译时加--features pcre2,它是 Cargo.toml 中声明的可选特性。

装完跑一条命令验证:

rg --version

能看到版本号(当前 15.x)即安装成功,输出里还列着 SIMD、PCRE2 等编译特性的开关状态。

四个高频搜索场景

记住下面四个场景,日常搜索基本不用再查手册。

全盘找内容

  • 需求:在当前目录里找出某段内容出现在哪些文件。
  • 命令:rg "pattern"
  • 为什么有效:递归扫描当前目录,同时自动避开被 git 忽略的文件,结果默认就是干净的。

按类型或目录找

  • 需求:只搜 Rust 文件,或只搜匹配某个通配规则的文件。
  • 命令:rg -t rust "fn main";换通配规则则用rg -g "*.rs" "TODO"
  • 为什么有效:-t限定文件类型(rg --type-list可看全部类型,-T排除类型),-g按 glob 过滤,范围先收窄再匹配,速度更快。

带上下文精确定位

  • 需求:光看匹配行不够,要连着前后代码一起看明白。
  • 命令:rg -n -C 2 "panic"
  • 为什么有效:-n显示行号方便编辑器跳转,-C 2前后各带 2 行;想更细可用-A 3、-B 2,-H强制显示文件名。

先看扫描范围再搜

  • 需求:不确定会扫到哪些文件,先确认范围再动手。
  • 命令:rg --files
  • 为什么有效:只列出会被搜索的文件,不搜内容;配合--max-depth 3限制递归深度,范围可控后再精确搜。

没搜到结果?逐个关掉默认过滤

搜不到多半不是 bug,而是默认过滤在生效。按下面顺序逐个排除:

  1. 在隐藏文件里?.git等隐藏目录默认跳过,--hidden打开。
  2. 在二进制文件里?默认跳过,-uu连二进制一起搜。
  3. 被 .gitignore 忽略了?从-u开始逐步关闭过滤,-uuu把隐藏、二进制、忽略规则全部放开。
  4. 只想关忽略规则、保留跳过二进制?用--no-ignore,比-uuu范围更窄。

💡-uuu是无差别搜索,大仓库里会明显变慢,找到原因后尽早收窄条件。

组合配方速查

记不住参数组合?下面这几条可以直接照抄:

配方什么时候用效果
rg "pattern"在当前目录找内容递归搜索,自动避开 git 忽略的文件
rg -t rust "fn main"只搜指定类型的文件按文件类型限定范围
rg -i -w "TODO"大小写混写、只要整词忽略大小写且整词匹配,不会命中 TODOList
rg -n -A 3 "err"想看匹配行之后的代码显示行号及后 3 行
rg -g "*.rs" "impl "用通配规则过滤文件只搜 .rs 文件
rg --files先确认会扫到哪些文件只列文件,不搜内容
rg -uu "pattern"怀疑内容藏在二进制里连二进制文件一起搜

在一个干净的 git 仓库里,rg "xxx"基本就是"只搜该搜的",这也是它比传统工具快的原因。想继续深入,可以研究-t与-g的组合,给自己攒几个搜索预设。延伸阅读:

  • 项目概览:README.md
  • 完整用户指南:GUIDE.md
  • 常见问题(解释为什么默认跳过二进制):FAQ.md
  • 帮助文本源码:crates/core/flags/doc/help.rs

【免费下载链接】ripgrepripgrep recursively searches directories for a regex pattern while respecting your gitignore项目地址: https://gitcode.com/GitHub_Trending/ri/ripgrep

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/1 9:37:03

Codex长期记忆难接?MCP桥接TencentDB Agent Memory实战

这段时间我在做一件听起来顺理成章、做起来却很折磨人的事:把腾讯云 TencentDB Agent Memory 当作 Codex CLI 的长期记忆后端,让同一个编码 Agent 在不同会话之间记得项目背景、记得上次改过哪几个文件、记得已经踩过的坑。单元测试里记忆写入和向量检索…

作者头像 李华
网站建设 2026/10/1 9:36:50

linux-command 命令详解:grpunconv 关闭群组投影密码的原理与实战

文档教程 【免费下载链接】linux-command Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux 项目地址: https://gitcode.com/GitHub_Trending/linux/linux-command 点击查看 免费下载 grpunconv 是 Linux 影子密码…

作者头像 李华
网站建设 2026/10/1 9:34:46

端侧视觉检索:TensorFlow.js与Web Worker实现零云端成本本地图片搜索

做端侧视觉检索这几个月,我最大的体会是:真正的隐私不是“上云后加密”,而是“根本不上云”。标题里那句话——“0 云端成本与 100% 隐私安全”——听起来有点营销味,但它确实把我做的一个东西概括完了:用 TensorFlow.…

作者头像 李华