Skip to content

网络路径上的 Edit 与 NotebookEdit 修复:UNC、WSL、/net 不再误改文件 ​

如果你的项目放在网络共享或跨系统目录里,比如 Windows 的 UNC 共享(\\server\share)、从 Windows 访问的 WSL 目录,或 Linux 上的 /net 自动挂载,那么 2.1.321 这组修复和你直接相关。

修复前会出什么问题 ​

在这些网络路径上,Claude Code 的文件编辑工具有几种「看起来成功、实际改坏」的情况:

  • Edit 改错位置:文件里有多处相同文本时,本该因为匹配不唯一而报错,结果却直接改了第一处;
  • 空 old_string 覆盖整个文件:一次空匹配的编辑,把整个文件替换成了新内容;
  • 把 Notebook 当纯文本改:对 .ipynb 用 Edit 时,按文本方式写入,可能破坏 JSON 结构;
  • NotebookEdit 误删首个单元格:调用时没有指定单元格,结果删除或覆盖了笔记本的第一个 cell。

这些问题只在网络路径上出现,本地磁盘行为正常,所以排查时很容易误以为是模型「乱改」。

2.1.321 之后 ​

上述几种情况在网络路径上已与本地磁盘保持一致:多处匹配会要求更精确的上下文,空匹配不会再整文件替换,Notebook 会按单元格结构处理,未指定单元格的 NotebookEdit 不再动第一个 cell。

使用建议 ​

  1. 尽快升级:claude update 或重新安装最新版本;
  2. 网络目录务必用 Git:在共享盘上工作时,编辑前后用 git diff 检查,出问题可以快速回滚;
  3. WSL 用户优先在 Linux 文件系统内工作:把仓库放在 ~/ 而不是 /mnt/c/,或从 Windows 端通过 \\wsl$ 访问时多留意改动;
  4. Notebook 先备份:重要的 .ipynb 在让 Claude 大改前先提交一次。

小结 ​

这是一组「静默数据损坏」类修复,不需要改配置,但影响面不小。项目放在共享盘、WSL 或网络挂载上的朋友,建议今天就升级。

Claude-cn.org,专注于 Claude Code 中文教程