跳转到内容

原子替换失败 不支持该请求 os error 50 cc-switch

Quick fix

升级 cc-switch 至 v3.20.0 或更高版本,以修复 WSL 路径下配置文件原子替换失败的回归问题。

报错原文
原子替换失败: \\wsl.localhost\Ubuntu-22.04\home\yyl\.claude\settings.json.tmp.35200.1786108834876118600.5 -> \\wsl.localhost\Ubuntu-22.04\home\yyl\.claude\settings.json: 不支持该请求。 (os error 50)

在 cc-switch v3.19.2 及更早版本中,当配置目录指向 WSL 路径(如 `\\wsl.localhost\...`)时,程序尝试使用原子替换(atomic replace)机制更新 `settings.json` 等配置文件。由于 Windows 与 WSL 之间的 9P 文件系统协议不完全支持某些原子文件操作,系统会返回 `os error 50`(不支持该请求)或 `os error 5`(拒绝访问)。

此外,在 WSL 与 Windows 目录之间频繁切换时,存在配置缓存未正确刷新的隐藏 bug,导致新配置被旧配置覆盖。该写入逻辑与缓存问题已在 v3.20.0 中修复。

  1. 升级 cc-switch 至 v3.20.0 或更高版本,该版本修复了 WSL 路径下无法更新/切换配置的回归问题。

  2. 若升级后仍提示 `os error 5`(拒绝访问),请在 WSL 终端中手动删除原有的 `.claude` 或 `.codex` 配置目录,然后重新在 cc-switch 中启用配置。

ToolClaude Code
Version3.12.3 - 3.19.2
PlatformsWindows
点击打开终端报错“'g' 不是内部或外部命令”怎么办?
这通常是因为 Windows 用户名包含中文字符,导致 cc-switch 生成的终端启动命令路径解析错误。请将 Windows 用户名改为纯英文,或检查环境变量路径。
为什么在 Claude Desktop 中无法使用 shell 等工具?
Claude Desktop 使用 CCD 会话系统,默认通过 admin policy 限制了工具数量(仅允许 4 个)。这是 Desktop 本身的机制,建议在 CLI 模式下使用以获取完整工具权限。
在 WSL 和 Windows 目录间切换配置后,新配置被旧配置覆盖怎么办?
这是早期版本在跨环境切换时配置缓存未正确刷新的 bug。请升级至最新版 cc-switch,若问题依旧,可尝试重启 cc-switch 或手动清理旧配置。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。