# Glob

按 glob 模式匹配文件名，并按最近修改时间倒序返回路径。它针对任意规模的代码库都能快速定位文件，无需退化到 `find`。

## 何时使用

- 枚举某个扩展名的所有文件（例如 `src` 下所有 `*.ts`）
- 按命名约定发现配置或夹具文件（`**/jest.config.*`、`**/*.test.tsx`）
- 在执行有针对性的 `Grep` 前收窄搜索面
- 在调用 `Write` 前检查是否已存在符合模式的文件
- 依赖修改时间排序，查找最近改动过的文件

## 参数

- `pattern` (string, 必填)：要匹配的 glob 表达式。支持 `*` 单段通配、`**` 递归匹配、`{a,b}` 多选，例如 `src/**/*.{ts,tsx}`。
- `path` (string, 可选)：执行搜索的目录。提供时必须是有效目录路径。完全省略该字段即在当前工作目录搜索。不要传入字符串 `"undefined"` 或 `"null"`。

## 示例

### 示例 1：每一个 TypeScript 源文件
以 `pattern: "src/**/*.ts"` 调用 `Glob`。结果按修改时间排序，最近编辑过的文件排在前面，便于聚焦热点。

### 示例 2：定位类定义候选
当你怀疑某个类位于某个不确定名字的文件中时，使用 `pattern: "**/*UserService*"` 缩小候选范围，再用 `Read` 或 `Grep` 跟进。

### 示例 3：更大任务前的并行发现
在同一条消息中发起多个 `Glob` 调用（例如一个搜 `**/*.test.ts`、一个搜 `**/fixtures/**`），让它们并行执行，再将结果关联。

## 注意事项

- 结果按文件修改时间排序（最新优先），而非字母顺序。如需稳定排序，请在后续步骤中自行排序。
- 模式由工具解析，而非 shell；你无需像在命令行那样加引号或转义。
- 对于需要多轮搜索和推理的开放式探索，请委派给 `Agent` 并使用 Explore 代理类型，而不是串起很多次 `Glob`。
- 在文件名发现上，优先使用 `Glob` 而非通过 `Bash` 调 `find` 或 `ls`；它处理权限更一致，返回结构化输出。
- 若要查找文件内部的内容而非文件名，请改用 `Grep`。
