Grep 读不了目录时不再说没有匹配

Claude Code 2.1.292 修复:Grep 和 Glob 在给定的文件或目录读不了时,以前报告没有匹配。现在会重试一次,或者告诉你读不了。说明没有写真正零匹配的目录会因此开始报错。权限或路径问题不再伪装成搜不到。

Grep 读不了目录时不再说没有匹配

搜不到和没权限看起来一样时,模型会换关键词再搜一轮。Claude Code 2.1.292 分开了这两种结果。发行说明写:Grep 和 Glob 在给定的文件或文件夹无法读取时,以前报告没有匹配。现在 Claude 会重试一次,或者告诉你读不了。claude code grep 没有匹配 在读失败时不应再被当成零结果。说明没有写真正没有匹配的目录会改成报错。

作者:CodePass 技术编辑

重试一次之后仍可能是告诉你

「重试一次或告诉你」是两种结局,说明没有写先做哪一个、重试间隔多久。权限不足、路径不存在、或目录被占用,都可能落在「无法读取」。升级后如果仍看到没有匹配,那更接近真的没有命中,而不是这句旧缺陷。低于 2.1.292 时,无法读取也会显示没有匹配,模型可能据此说代码里不存在某个符号。那种结论要在升级后重搜一次再信。

Read 工具读 PDF 时,pages 若是 "6,9,15" 这种列表,以前只返回第一项而且不报错。同一版改为返回错误,并说明要按页或按范围分开读。那是参数形状。Grep 这条是路径读不了。模型若同时说「PDF 只有第一页」和「Grep 没有匹配」,对的是两个修复,不要合成一个「搜索坏了」。

和 Bash 里的 grep 不是同一件工具

2.1.293 修的是 Bash 里单文件 grep 看文件时,路径规则和嵌套 CLAUDE.md 会加载,见 Bash 查看会加载规则。那是规则有没有进上下文。2.1.292 这条是 Grep 工具把读失败说成零匹配。Bash 命令的退出码和 Grep 工具的「没有匹配」文案不是同一条修复。只升级到 2.1.292 时,Bash 查看仍可能不加载嵌套规则。只关心搜不到的真假,2.1.292 就覆盖这句。

参考资料