删除 Windows 上名为“ NUL”的文件

我在 Windows7上运行了一个在 Cygwin 下编译的程序,并将“ NUL”作为输出文件名传递给它。它没有抑制输出,而是在工作目录中创建了一个名为“ NUL”的文件。(显然它期望“/dev/null”,即使在 Windows 上也是如此。)现在我被困在这个“ NUL”文件,我不能删除!

我已经试过了:

  • 文件资源管理器错误: “无效的 MS-dos 功能”(是的,它是这么说的!)
  • 命令提示符使用“ del NUL”-error: “文件名、目录名或卷 标签语法不正确”
  • 删除整个目录——就像删除文件一样
  • 一个 C 程序中的 remove()-也失败了

如果不安装完整的 Cygwin 环境并在 Cygwin 下编译一个 C 程序,那么如何去掉这些 NUL 文件(我现在已经有了几个) ?

26521 次浏览

尝试编写一个简短的 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\NULrmdir\\.\C:\My\Path\NUL,但没有成功,还尝试了使用 SourceTree 安装中的 bash 命令。没有发现。

最后,我使用 DIR /X /A from cmd 来列出父目录中的短名称。这显示了我的 NUL 文件夹的 NUL~1,并找出了问题的症结所在。

然后在标准命令 rmdir /s NUL~1中使用这个命令,并最终解决了这个问题。

删除位于此处的空文件: C: unix cygwin dev null

我只是简单地使用(仅在 Windows10上测试) : Del? C: unix cygwin dev NUL

如果已经安装了 Windows Git (v2.18) ,请执行以下操作

  1. 打开包含要删除的文件的目录
  2. 左击并选择 Git Bash Here
  3. 在命令提示符下键入 rm nul.json并按 ENTER,文件现在应该被删除。

run Git Bash Here

注意: 这些截图显示文件 nul.topo.json的删除,这是另一个文件,我不能删除一个简单的删除。

after command execution

如果你在 windows 上有 git,只需右键点击包含 null 文件的文件夹-> 转到这里的 gitbash-> 并根据文件类型输入“ rm nul”或“ rm nul.json”。

我也有同样的问题。
如果您已经安装了 WSL2,只需转到该目录并运行:

rm -f nul

在我的情况下,文件是小写的。你应该是好的。