如何在Windows上删除名为“ NUL”的文件?


49

我有一个Windows XP框(NTFS文件系统),在该框上找到了名为的文件NUL。我无法以任何常规方式删除此文件。该文件似乎归AdministratorSYSTEM组所有,与同一目录中的其他任何文件都不一样(其他文件由我的用户ID拥有)。

我如何摆脱这个文件?它从哪里来的?


3
NUL是系统保留字;请参阅这篇Wikipedia文章。名为NUL的文件不应存在于文件系统上。这可能是由错误的软件引起的。您可以DELETE使用命令提示符使用命令将其删除。
bwDraco

9
@DragonLord:文件系统的名称没有问题;例如,您可以在POSIX环境中创建此类文件。(一个人可以aux.c在软件源代码中找到相似的名称。)纯粹是Win32 API管理这些“设备名称”。
grawity

CON,PRN,AUX,NUL,COM1,COM2,COM3,COM4,COM5,COM6,COM7,COM8,COM9,LPT1,LPT2,LPT3,LPT4,LPT5,LPT6,LPT7,LPT8,LPT9和CLOCK相同$加上其他几个人-看en.wikipedia.org/wiki/...
robocat

Cygwin创建(或用于创建)一个名为“ nul”的文件,通常在“ C:\ cygwin \ dev \ nul”中看到。这是我每隔几年遇到一次的问题,我是Google,我又被带回了这个问题。
zarchasmpgmr

Answers:


83

尝试

Del \\?\C:\My\Path\NUL

在命令提示符下。

请参阅此Microsoft支持文章以获取详细信息:您不能在“原因5:文件名在Win32命名空间中包括保留名称”下删除NTFS文件系统卷上的文件或文件夹


1
谢谢!可行!另外,感谢您对权威文档的大量参考。我在网络搜索中发现了一些非常相似的东西,但是没有用。这个建议.代替了?
格雷格·马特斯

1
@Greg:当然!该文档是@DragonLord的帮助。:-)是的,放.而不是?做的不是一回事-问号阻止了子系统的进一步处理,而句号表示“当前机器” ...不是一回事,尽管这肯定是令人困惑。:)
迈尔达德(Mehrdad)

1
我不确定这实际上是什么意思。该\\.\ 前缀用于设备名称空间,但没有明确提及.与目录名称具有相同含义(“当前X”)。
grawity

4
作为上述解决方案的替代方法,如果您的工作目录已经是包含该nul文件的目录,则可以:del "\\?\%CD%\nul"%CD%零件扩展到工作目录,并且双引号(")使其全部还处理带有“奇数”符号的路径名,例如"\\?\C:\path,with\comma\nul"
HenrikB 2013年

1
在我的环境中,从powershell或管理上的提升提示来看,它似乎并不有效,但在标准终端中却有效。
JustinC 2013年

13

或者,如果您安装了Cygwin,则可能要知道,此类文件或文件夹没有问题。尤其,

rm -r /cygdrive/c/path/to/the/file/or/folder/you/want/to/delete

在Cygwin终端中键入会删除名为的文件或文件夹nul或包含该文件或文件夹的文件夹。这也适用于其他专业的文件名,例如CONPRNAUXCOM1COM2COM3COM4COM5COM6COM7COM8COM9LPT1LPT2LPT3LPT4LPT5LPT6LPT7LPT8


2
也适用于git bash
c33s

如果您已经安装了Git,那么您已经获得了GNU rm命令,因此不需要cygwin。假设将GNU工具bin目录添加到PATH,则可以使用cmd中的所有GNU好东西。
icc97

8

我在此处添加此内容是因为它在Google搜索结果中很高,并且对于名为NUL 的文件夹,我也遇到了类似的问题。不幸的是,以上修复没有帮助。我看过的东西也很多。

我想rmdir\\?\C:\My\Path\NULrmdir\\.\C:\My\Path\NUL没有任何成功,并且还使用bash从我SourceTree安装试了几个命令。不开心

最后,我使用DIR /X /Acmd在父目录中列出了简称。这返回NUL~1了我的NUL文件夹。

然后将其用于标准命令中,rmdir /s NUL~1并最终解决了该问题。


嗯,使用短名称绕过特殊名称非常聪明。
SamB

1

如果您已安装Windows Git,请执行以下操作

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

在这里运行Git Bash

注意:这些屏幕截图显示了文件的删除,nul.topo.json这是我无法通过简单删除操作删除的另一个文件。

执行命令后

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.