Skills: 文件操作技能
最后更新:2026-08-31
文件是代码的载体——不会操作文件的 Skill,就像没有手的设计师。
1. 文件操作工具箱
(1) 读取类操作
| 操作 | 工具 | 适用场景 |
|---|---|---|
| 读取单个文件 | Read | 审查特定文件 |
| 搜索文件名 | Glob | 确定文件范围 |
| 搜索文件内容 | Grep | 定位代码模式 |
(2) 写入类操作
| 操作 | 工具 | 风险 | 适用场景 |
|---|---|---|---|
| 精确编辑 | Edit | 🟡 | 修复 bug、小调整 |
| 创建/覆盖 | Write | 🔴 | 新建文件、完全重写 |
| 批量修改 | Edit + 循环 | 🟡 | 重命名、批量替换 |
(3) 执行类操作
| 操作 | 工具 | 适用场景 |
|---|---|---|
| 格式化代码 | Bash(prettier) | 代码风格统一 |
| 运行脚本 | Bash(python) | 数据处理、批量操作 |
| Git 操作 | Bash(git) | 版本管理 |
2. 文件操作模式
(1) 只读分析模式
不修改任何文件,只输出分析结果:
YAML
---
name: code-metrics
description: "代码度量分析"
tools:
- Read
- Grep
- Glob
---
MARKDOWN
## 执行流程
1. Glob 确定项目文件范围
2. Grep 统计代码模式(类、函数、TODO)
3. Read 深入分析关键文件
4. 输出度量报告,不修改任何文件
(2) 安全修改模式
修改前先备份,修改后验证:
MARKDOWN
## 安全修改规则
1. Read 当前文件内容
2. 分析需要修改的位置
3. Edit 精确修改,只改目标行
4. Bash 运行测试验证
5. 如果测试失败,说明问题并建议回滚
(3) 批量操作模式
MARKDOWN
## 批量重命名流程
1. Glob 获取目标文件列表
2. 列出所有计划的修改
3. 逐个 Edit 执行修改
4. Bash 运行全量测试验证
3. 搜索策略
(1) 搜索优先原则
TEXT
📖 仅展示
错误方式:读取所有文件 → 逐个检查
正确方式:搜索定位 → 精准读取
(2) 常用搜索模式
| 搜索目标 | Grep 模式 | 示例 |
|---|---|---|
| 函数定义 | `def \w+ | function \w+` |
| TODO 注释 | TODO|FIXME|HACK |
找到技术债 |
| 安全风险 | eval(|exec(|subprocess |
找到危险调用 |
| 类型定义 | class \w+|interface \w+ |
找到类型结构 |
| 测试文件 | test_|_test|\.spec\. |
找到测试文件 |
(3) 搜索与读取配合
graph TD
A[Glob: 确定文件列表] --> B[Grep: 搜索关键模式]
B --> C{找到目标?}
C -->|是| D[Read: 深入阅读]
C -->|否| E[扩大搜索范围]
D --> F{需要修改?}
F -->|是| G[Edit: 精确修改]
F -->|否| H[输出分析结果]
4. 文件操作实战
▶ 示例:项目迁移 Skill
Alice 需要将项目从 JavaScript 迁移到 TypeScript:
YAML
---
name: js-to-ts-migration
description: "将 JS 文件迁移为 TS"
tools:
- Read
- Write
- Glob
- Grep
- Bash
---
MARKDOWN
## 迁移流程
1. Glob 找到所有 .js 文件
2. 对每个文件:
a. Read 读取内容
b. 分析依赖和导出
c. Write 创建对应 .ts 文件
d. 添加类型注解
3. Bash 运行 tsc --noEmit 验证
4. 输出迁移报告
Bob 说:"文件操作最怕的是误删误改——搜索定位、精准编辑、事后验证,三步一个都不能少。"
❓ 常见问题
Q Edit 和 Write 怎么选?
A 修改现有文件优先用 Edit(精确到行),创建新文件用 Write。绝对不要用 Write 覆盖大文件中一小部分。
Q 批量操作时如何避免遗漏?
A 先用 Glob 列出所有目标文件,确认范围后再逐个操作。每步都记录进度,方便中断后恢复。
Q 如何处理大文件?
A 用 Grep 定位目标行号,再用 Read 按行号范围读取相关片段,避免读取整个文件浪费上下文。
📖 小节
- 三类操作:只读分析、安全修改、批量操作
- 搜索优先:先 Glob/Grep 定位,再 Read 深入,最后 Edit/Write 修改
- 安全原则:修改前读取、修改时精确、修改后验证
- 大文件策略:按行号范围读取,不全文加载
📝 作业
- 基础题(难度⭐):创建一个只读分析 Skill,统计项目中 TODO/FIXME 的数量和分布。
- 进阶题(难度⭐⭐):创建一个安全修改 Skill,自动为 Python 函数添加 type hints,修改后运行测试验证。
- 挑战题(难度⭐⭐⭐):创建一个批量迁移 Skill,将项目中的 CommonJS require 改为 ES Module import,处理循环依赖等边界情况。