Glob 工具学习记录
学习日期:2026-03-13
所属阶段:阶段一 - 基础掌握
工具概述
Glob 是 Claude Code 中用于查找文件的专用工具,支持通配符模式匹配,用于替代传统的 find 或 ls 命令。
参数说明
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
pattern |
string | ✅ | 文件匹配模式 |
path |
string | ❌ | 搜索的起始目录(默认为当前目录) |
模式语法
| 通配符 | 含义 | 示例 |
|---|---|---|
* |
匹配任意字符(不含路径分隔符) | *.md 匹配所有 markdown |
** |
递归匹配所有子目录 | **/*.kt 递归匹配所有 Kotlin |
? |
匹配单个字符 | file?.txt 匹配 file1.txt, fileA.txt |
实践案例
案例 1:查找所有 Markdown 文件
需求:查找整个项目中的所有 markdown 文档
执行:
Glob pattern="**/*.md"
结果:
- 找到大量文件,涵盖 kotlin/、pan/、ClaudeCode/ 等目录
- 结果按路径排序,便于浏览
心得:
- **/ 表示递归所有层级
- 结果自动按路径排序
案例 2:查找特定目录的文件
需求:查找 ClaudeCode 目录下的所有文档
执行:
Glob pattern="ClaudeCode/*.md"
结果:
D:\dazhao\learning\documents\ClaudeCode\001-Claude Code提升开发效率指南.md
D:\dazhao\learning\documents\ClaudeCode\002-Claude Code常用命令及作用.md
D:\dazhao\learning\documents\ClaudeCode\003-Claude Code 尝试使用Agent Teams功能.md
D:\dazhao\learning\documents\ClaudeCode\004-Claude Code 如何写 Skill 技能.md
D:\dazhao\learning\documents\ClaudeCode\005-Claude Code Skill 技能使用指南.md
D:\dazhao\learning\documents\ClaudeCode\006-Claude Code在power shell运行异常.md
D:\dazhao\learning\documents\ClaudeCode\007-Claude Code 完全使用指南.md
D:\dazhao\learning\documents\ClaudeCode\008-Claude Code深入学习计划.md
心得:
- 不需要 **/ 表示只查找当前目录
- 精确指定目录范围可以提高效率
案例 3:查找特定前缀的文件
需求:查找 kotlin 目录下所有以 "001-" 开头的文件
执行:
Glob pattern="kotlin/001-*.md"
结果:
D:\dazhao\learning\documents\kotlin\001-结合实例讲解Kotlin关键字also的应用场景.md
心得:
- 001-* 匹配以 001- 开头的任意文件名
- 适用于按编号查找文档
案例 4:查找特定子目录
需求:查找所有 daily 目录下的文件
执行:
Glob pattern="**/daily/*.md"
结果:
D:\dazhao\learning\documents\pan\daily\2026年03.md
心得:
- 适用于查找散落在各处的特定类型目录
最佳实践
| ✅ 推荐 | ❌ 避免 |
|---|---|
Glob pattern="**/*.kt" |
find . -name "*.kt" |
Glob pattern="ClaudeCode/*.md" |
ls ClaudeCode/*.md |
Glob pattern="src/**/*.java" |
find src -name "*.java" |
常见问题
Q1: Glob 和 Bash 的 find 有什么区别?
A: Glob 是 Claude Code 的专用工具,结果更规整,无需解析命令输出,效率更高。
Q2: 如何限制搜索深度?
A: 调整 pattern,如 kotlin/*.md 只查一级,kotlin/**/*.md 查所有子目录。
Q3: 结果太多被截断怎么办?
A: 缩小搜索范围,使用更精确的 pattern 或指定 path 参数。
学习检查点
- [x] 理解
*和**的区别 - [x] 能使用 pattern 精确查找文件
- [x] 掌握优先使用 Glob 而不是 Bash find
掌握度:⭐⭐⭐⭐⭐
当前文章价值2元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

评论已关闭!