我在Windows 7上运行了一个在Cygwin下编译的程序,并将“NUL”作为输出文件名。它实际上没有抑制输出,而是在当前目录中创建了一个名为“NUL”的文件。(显然,即使在Windows上,它也希望“/dev/null”。)现在我被这个无法删除的“NUL”文件卡住了!
我已经试过了:
- Windows资源管理器-错误:“无效的MS-DOS函数”(是的,这是认真的!)
- 命令提示符使用“del NUL”-错误:文件名、目录名或卷标语法不正确。
- 删除整个目录-与仅删除文件相同
remove()
-也会失败
我如何才能摆脱这些NUL文件(我现在有几个),除了安装完整的Cygwin环境和编译一个C程序下Cygwin这样做?
8条答案
按热度按时间uttx8gqw1#
打开命令提示符,使用以下命令先重命名NUL文件,然后再删除该文件:
使用
\\.\
前缀告诉高级文件I/O函数将未经解析的文件名传递给设备驱动程序-这样您就可以访问无效的名称。阅读this article,了解Windows中的有效文件/路径名以及各种保留名称。
2wnc66cl2#
如果您安装了Git for Windows(v2.18),请执行以下操作
1.打开包含要删除的文件的目录
1.左键单击并选择
Git Bash Here
1.在命令提示符下键入
rm nul.json
并按ENTER键,该文件现在应已删除。注:这些截图显示了文件
nul.topo.json
的删除,这是另一个文件,我不能删除一个简单的删除。lztngnrs3#
如果你在Windows上安装了git,只需右键单击包含nul文件的文件夹-〉转到gitbash这里-〉然后根据文件类型键入“rm nul”或“rm nul.json”。
tjrkku2a4#
我也遇到过类似的问题,可能也是Cygwin造成的(因为我经常使用它),但我已经忘记了文件是如何创建的。
我也有麻烦删除它。我遵循了一些其他帖子的建议,并尝试启动到安全模式删除文件,虽然这没有什么用。提示从+xxbbcc不为我工作了。
然而,我能够使用Cygwin终端删除文件!Cygwin createth和Cygwin destroyeth。
flvlnr445#
要删除位于此处的nul文件,请执行以下操作:C:\unix\cygwin\开发工具\nul
我只使用(仅在Windows 10上测试):删除\?\C:\unix\cygwin\dev\NUL
oyxsuwqo6#
我用一种稍微不同的方法解决了这个问题。
我想我会在这里添加这个,因为它在谷歌结果中很高,我也有一个类似的问题,一个名为NUL的 * 文件夹 *。
我尝试了
rmdir\\?\C:\My\Path\NUL
和rmdir\\.\C:\My\Path\NUL
没有任何成功,还尝试了几个命令使用bash从我的SourceTree安装。没有喜悦。最后,我使用cmd中的
DIR /X /A
列出了父目录中的短名称,这显示了NUL文件夹的NUL~1
,并确定了问题的关键。然后在标准命令
rmdir /s NUL~1
中使用该命令,最终解决了该问题。zpjtge227#
我也有同样的问题。
如果您安装了WSL2,只需转到该目录并运行:
在我的情况下,文件是小写的。你应该很好。
brjng4g38#
尝试编写一个简短的C程序,调用Windows API来删除该文件。
http://msdn.microsoft.com/en-us/library/aa363915%28v=vs.85%29.aspx
如果不起作用,请尝试使用CreateFile()和FILE_FLAG_DELETE_ON_CLOSE打开文件的句柄,然后关闭该句柄。