# How do I remove a file named “NUL” on Windows?

I have a Windows XP box (NTFS filesystem) on which I found a file named `NUL`. I have not been able to remove this file in any usual way. The file appears to be owned by `Administrator` in the `SYSTEM` group, unlike any other file in the same directory (the other files are owned by my user id).

How do I get rid of this file? Where did it come from?

• NUL is a system reserved word; see this Wikipedia article. A file named NUL should never exist on the filesystem; this may be caused by buggy software. You may be able to remove it using the `DELETE` command using Command Prompt. – bwDraco May 11 '11 at 17:30
• @DragonLord: The filesystem doesn't have a problem with such names; for example, you can create such files within a POSIX environment. (One can find `aux.c` and similar names in software source code.) It's purely the Win32 API that manages these "device names". – grawity May 12 '11 at 5:17
• The same applies to CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, and CLOCK\$ plus a few others - see en.wikipedia.org/wiki/… – robocat Apr 30 '15 at 1:38
• Cygwin creates (or used to) a file called "nul", usually seen in "C:\cygwin\dev\nul". This is the one that I hit once every few years, I Google, and I'm brought back (again) to this question. – zarchasmpgmr May 15 '17 at 19:35

Try

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

in the command prompt.

See this Microsoft Support article for details: You cannot delete a file or a folder on an NTFS file system volume, under "Cause 5: The file name includes a reserved name in the Win32 name space".

• Thanks! That worked! Also, thanks for the great reference to the authoritative documentation. I found something in a web search that was very similar, but did not work. That suggestion had a `.` in place of the `?`. – Greg Mattes May 11 '11 at 20:12
• @Greg: Sure! The documentation was @DragonLord's help. :-) And yeah, putting `.` instead of `?` doesn't quite do the same thing -- the question mark prevents further processing by the subsystem, whereas the period means "the current machine"... not quite the same thing, although it's definitely confusing. :) – Mehrdad May 11 '11 at 20:23
• I'm not sure it actually means that. The `\\.\ ` prefix is for the device namespace, but there is no explicit mention that `.` has the same meaning ("current X") as it does for directory names. – grawity May 12 '11 at 5:15
• As an alternative to above solution if your working directory is already the directory with the `nul` file, you can: `del "\\?\%CD%\nul"` The `%CD%` part is expanded to the working directory and the double quotation marks (`"`) make it all handle also pathnames with "odd" symbols, e.g. `"\\?\C:\path,with\comma\nul"`. – HenrikB Sep 7 '13 at 15:09
• It did not not seem to be effective from powershell or an administratively elevated prompt in my environment, but worked effectively in a standard terminal. – JustinC Sep 26 '13 at 21:43

Alternatively if you have Cygwin installed, you may want to know, that it has no problem with such files or folders. Particularly,

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

typed in the Cygwin terminal deletes the file or folder named `nul` or a folder, containing it. This is also applicable to other special file names such as `CON`, `PRN`, `AUX`, `COM1`, `COM2`, `COM3`, `COM4`, `COM5`, `COM6`, `COM7`, `COM8`, `COM9`, `LPT1`, `LPT2`, `LPT3`, `LPT4`, `LPT5`, `LPT6`, `LPT7`, `LPT8`.

• also works with git bash – c33s Sep 20 '16 at 10:24
• If you have installed Git then you've got the GNU `rm` command so you don't need cygwin. Assuming you add the GNU tools bin directory to your PATH you can use all the GNU goodies from cmd. – icc97 Nov 27 '17 at 23:33

I'm adding this here because it is high in the google results and I had a similar issue for a folder named NUL. Unfortunately the above fixes didnt help. Neither did a ton of other stuff I looked at.

I tried `rmdir\\?\C:\My\Path\NUL` and `rmdir\\.\C:\My\Path\NUL` without any success and also tried several commands using bash from my SourceTree installation. No joy.

In the end I used `DIR /X /A` from cmd to list the short names in the parent directory. This returned `NUL~1` for my NUL folder.

This was then used in the standard command `rmdir /s NUL~1` and finally fixed the problem.

• Hmm, that's pretty clever using the short name to bypass the special name. – SamB Jun 18 '17 at 15:38

If you have Git for Windows Installed do the following

1. Open the directory containing the files you want to remove
2. Left Click and select `Git Bash Here`
3. Type `rm nul.json` at the command prompt and hit ENTER, the file now should be removed.

NOTE: These screenshots show the removal of file `nul.topo.json` which is another file that I could not removed with a simple delete.