我在 Windows7上运行了一个在 Cygwin 下编译的程序,并将“ NUL”作为输出文件名传递给它。它没有抑制输出,而是在工作目录中创建了一个名为“ NUL”的文件。(显然它期望“/dev/null”,即使在 Windows 上也是如此。)现在我被困在这个“ NUL”文件,我不能删除!
我已经试过了:
remove()
如果不安装完整的 Cygwin 环境并在 Cygwin 下编译一个 C 程序,那么如何去掉这些 NUL 文件(我现在已经有了几个) ?
尝试编写一个简短的 C 程序,调用 WindowsAPI 删除该文件。
Http://msdn.microsoft.com/en-us/library/aa363915%28v=vs.85%29.aspx
如果这不起作用,尝试用 FILE _ FLAG _ DELETE _ ON _ CLOSE 打开 CreateFile ()文件的句柄,然后关闭句柄。
打开命令提示符并使用这些命令首先重命名,然后删除 NUL 文件:
C:\> rename \\.\C:\..\NUL. deletefile.txt C:\> del deletefile.txt
使用 \\.\前缀告诉高级文件 I/O 函数将未经解析的文件名传递给设备驱动程序——这样就可以访问无效的名称。
\\.\
阅读有关 Windows 中的有效文件/路径名称和各种保留名称的 这篇文章。
我也有过类似的问题。它可能也是由 Cygwin 引起的(因为我经常使用它) ,但是我已经忘记了这个文件是如何创建的。
我也无法删除它。我遵循了一些其他帖子的建议,并尝试启动到安全模式删除文件,但这没有任何作用。+ xxbbcc 的提示对我也不起作用。
然而,我能够删除文件使用 Cygwin 终端! Cygwin 创建和 Cygwin 毁灭。
我用稍微不同的方法解决了这个问题。
我想我会在这里添加这一点,因为它是高在谷歌的结果,我有一个类似的问题为 文件夹命名为 NUL。
我尝试了 rmdir\\?\C:\My\Path\NUL和 rmdir\\.\C:\My\Path\NUL,但没有成功,还尝试了使用 SourceTree 安装中的 bash 命令。没有发现。
rmdir\\?\C:\My\Path\NUL
rmdir\\.\C:\My\Path\NUL
最后,我使用 DIR /X /A from cmd 来列出父目录中的短名称。这显示了我的 NUL 文件夹的 NUL~1,并找出了问题的症结所在。
DIR /X /A
NUL~1
然后在标准命令 rmdir /s NUL~1中使用这个命令,并最终解决了这个问题。
rmdir /s NUL~1
删除位于此处的空文件: C: unix cygwin dev null
我只是简单地使用(仅在 Windows10上测试) : Del? C: unix cygwin dev NUL
如果已经安装了 Windows Git (v2.18) ,请执行以下操作
Git Bash Here
rm nul.json
注意: 这些截图显示文件 nul.topo.json的删除,这是另一个文件,我不能删除一个简单的删除。
nul.topo.json
如果你在 windows 上有 git,只需右键点击包含 null 文件的文件夹-> 转到这里的 gitbash-> 并根据文件类型输入“ rm nul”或“ rm nul.json”。
我也有同样的问题。 如果您已经安装了 WSL2,只需转到该目录并运行:
rm -f nul
在我的情况下,文件是小写的。你应该是好的。