Skip to content

1.3 文件操作 — Claude Code 的超能力

学习目标

  • 理解 Claude Code 如何读取、创建和修改文件
  • 学会通过自然语言让 Claude Code 操作文件
  • 理解权限确认机制,放心大胆地使用
  • 通过实际操作建立信心

为什么说文件操作是"超能力"?

ChatGPT 只能在聊天窗口里给你代码,你还得自己复制粘贴到编辑器里。Claude Code 不一样——它直接在你的项目里创建文件、修改代码、运行命令。

这就像是:ChatGPT 是远程电话指导你做菜,Claude Code 是直接到你厨房帮你做菜。效率差了不是一点半点。


读取文件

最简单的操作,直接告诉 Claude Code 你想看什么文件:

> 看一下 package.json 的内容

Claude Code 会读取文件并显示内容,同时理解文件的上下文。你也可以用 @ 引用:

> @src/App.tsx 这个文件目前的结构是怎样的?帮我梳理一下

[截图: Claude Code 读取文件后的输出,显示文件内容和 AI 的解读]

Claude Code 不只是"读"给你看,它会理解文件内容。你可以问它:

> 这个项目用了哪些依赖?有没有过时的?
> src/utils 目录里的工具函数都是干什么的?帮我列个清单
> 这个 API 接口的请求参数和返回格式是什么?

它会自动去找相关文件,综合分析后给你答案。

踩坑提醒:Claude Code 默认只能读取当前项目目录内的文件。如果你想让它读其他位置的文件,需要额外配置权限。


创建文件

直接描述你要什么,Claude Code 帮你创建:

> 创建一个 src/utils/formatDate.ts 工具函数,要求:
> - 接收 Date 对象或时间戳
> - 支持 "YYYY-MM-DD"、"YYYY/MM/DD"、"MM月DD日" 三种格式
> - 导出为命名导出

Claude Code 会:

  1. 在指定路径创建文件
  2. 写入符合要求的代码
  3. 显示创建的文件内容给你确认

[截图: Claude Code 创建文件时的确认界面,显示即将写入的内容]

关键来了——它会先问你。在实际写入文件之前,Claude Code 会展示它要创建的内容,等你确认后才执行。

你会看到类似这样的提示:

Claude wants to create file: src/utils/formatDate.ts

[文件内容预览]

Allow? (y/n)

y 确认,文件就创建了。按 n 拒绝,它会问你哪里不满意。


修改文件

这是 Claude Code 最强大的地方。它不会整个文件重写,而是做精确修改——只改需要改的地方。

> @src/components/Button.tsx 给这个按钮组件加上 loading 状态:
> - 新增 loading 属性
> - loading 时显示旋转图标,按钮不可点击
> - 保持现有样式不变

Claude Code 会用它的 Edit 工具做精确替换:

[截图: Claude Code 修改文件时的 diff 预览,红色删除行+绿色新增行]

你会看到清晰的 diff 对比:

  • 红色部分是要删除的旧代码
  • 绿色部分是要添加的新代码

一样会等你确认后才执行。

踩坑提醒:如果 Claude Code 的修改看起来改了太多地方,或者改了你没要求改的部分,果断拒绝,然后更具体地描述你的需求。不要因为"AI 做了嘛应该没问题"就盲目接受。


权限确认机制

Claude Code 的设计理念是:你始终掌握控制权

每次它要做以下操作时,都会先问你:

操作类型确认提示
创建新文件"Claude wants to create file: xxx"
修改已有文件"Claude wants to edit file: xxx"
删除文件"Claude wants to delete file: xxx"
运行命令"Claude wants to run: xxx"

[截图: 不同操作类型的确认弹窗对比]

快捷操作

  • y — 同意这次操作
  • n — 拒绝这次操作
  • a — 同意此类型的所有后续操作(比如连续创建多个文件时不用每个都确认)

刚开始用的时候,建议每次都认真看一下它要做什么再确认。等你对 Claude Code 建立了信任,可以用 a 批量接受,或者切换到更宽松的权限模式(后面进阶篇会讲)。


实战演示:从零创建一个小工具

让我们把上面学的连起来,做一个完整的操作:

第一步:让 Claude Code 创建项目结构

> 帮我创建一个温度转换工具,文件结构如下:
> - src/converter.js — 核心转换逻辑(摄氏/华氏/开尔文互转)
> - src/index.js — 入口文件,从命令行读取参数
> - package.json — 项目配置

第二步:确认创建

Claude Code 会逐一展示每个文件的内容,你一个个确认。

[截图: 逐个确认文件创建的完整流程]

第三步:试运行

> 运行一下看看效果:node src/index.js 100 C F

Claude Code 会执行这个命令,然后把输出展示给你:

100°C = 212°F

第四步:发现问题,让它修改

> 输出格式改一下,加上小数点后两位,而且加上开尔文的结果

它会精确修改 converter.js 里的输出逻辑,其他代码不动。


常见问题

Q:Claude Code 会不会改错文件? A:它每次修改前都会告诉你要改哪个文件的哪些内容。你有充分的审查机会。而且就算改错了,还有检查点可以回退(下节课讲)。

Q:它能操作图片、视频这些非代码文件吗? A:Claude Code 可以读取图片(理解图片内容),可以创建和操作文本类文件。但它无法直接编辑二进制文件(如图片的像素)。不过它可以帮你写脚本来处理这些文件。

Q:同时改多个文件可以吗? A:完全可以。你描述需求后,Claude Code 会列出所有需要修改的文件,逐一展示修改内容让你确认。一个复杂的功能可能涉及五六个文件的改动,它都能处理。

Q:它会不会误删我的文件? A:删除操作同样需要你确认。而且实际使用中,Claude Code 极少主动提出删除文件。通常只有你明确说"删掉这个文件"时它才会执行。


小结

文件操作是 Claude Code 和普通聊天 AI 的最大区别。记住三点:

  1. 直接说需求,不用操心具体的文件操作命令,Claude Code 自己知道该读、该建还是该改
  2. 每次操作都有确认,你不点头它不动手
  3. 看 diff 是好习惯,确认修改内容再接受

下节课我们讲检查点——你的终极安全网,让你放心大胆地尝试各种操作。

用 Claude Code 构建,用 VitePress 驱动