逼疯强迫症!Windows 版 Claude Code 莫名生成nul幽灵文件
只要在 Windows 平台上使用 Claude Code,发现一个非常诡异的现象:项目根目录下经常会无端冒出一个名为 nul 的文件。
这个文件最恶心的地方在于:它像个幽灵,看得见,却删不掉。 当你试图在资源管理器里右键删除时,Windows 往往会报错,提示文件不存在或权限不足。

这是一场跨平台的语法误会
为什么 Claude 会自作聪明地生成这个文件?
1. 模型的惯性思维
Claude 系列模型在接到执行 Bash 命令的任务时,为了保持输出界面的整洁,习惯性地会将不必要的日志或错误流重定向掉。
2. 致命的语义错位
Windows 逻辑: 丢弃输出用
>nul。Posix/Bash 逻辑: 丢弃输出用
>/dev/null。
尴尬的点就在这里:Claude 意识到自己在 Windows 环境,于是贴心地写下了 >nul;但它运行的 Shell 环境(如 Git Bash)却是 Posix 语义。 在 Bash 眼里,nul 并不是设备,而是一个普通的文件名。结果就是:它真的在磁盘上创建了一个名为 nul 的文件。

3. 为什么删不掉?
在 Windows 文件系统底层,nul、con、prn 属于保留设备名。虽然 Bash 强行创建了它,但 Windows 原生的资源管理器在处理这些名字时会触发保护机制,导致普通手段无法将其抹除。

解决方案
如果你的目录下已经有了这个幽灵文件,可以用以下几种暴力手段:
Claude Code 删除: 直接在控制台输入
!rm ./nul,或者告诉cc删除这个文件。Git Bash 删除: rm -f nul。
暴力工具: 使用火绒粉碎或命令行强制删除。
