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) 搜索与读取配合

100%
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 按行号范围读取相关片段,避免读取整个文件浪费上下文。

📖 小节


📝 作业

  1. 基础题(难度⭐):创建一个只读分析 Skill,统计项目中 TODO/FIXME 的数量和分布。
  2. 进阶题(难度⭐⭐):创建一个安全修改 Skill,自动为 Python 函数添加 type hints,修改后运行测试验证。
  3. 挑战题(难度⭐⭐⭐):创建一个批量迁移 Skill,将项目中的 CommonJS require 改为 ES Module import,处理循环依赖等边界情况。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏