Ejecuté un programa en Windows 7 que se compiló bajo Cygwin y pasé “NUL” como nombre de archivo de salida. En lugar de suprimir la salida, en realidad creó un archivo llamado “NUL” en el directorio actual. (Aparentemente espera “/dev/null”, incluso en Windows). ¡Ahora estoy atascado con este archivo “NUL” que no puedo eliminar!
Ya he probado:
- Explorador de Windows – error: “Función de MS-DOS no válida” (sí, ¡eso es lo que dice en serio!)
- Símbolo del sistema utilizando “del NUL” – error: “El nombre de archivo, el nombre de directorio o la sintaxis de la etiqueta de volumen es incorrecta”.
- Eliminar todo el directorio: el mismo trato que simplemente eliminar el archivo
remove()
en un programa C – también falla
¿Cómo puedo deshacerme de estos archivos NUL (ya tengo varios), sin instalar el entorno Cygwin completo y compilar un programa C en Cygwin para hacerlo?

xxxbbcc
Abra un símbolo del sistema y use estos comandos para cambiar el nombre primero y luego eliminar el archivo NUL:
C:\> rename \\.\C:\..\NUL. deletefile.txt
C:\> del deletefile.txt
Utilizando el \\.\
prefijo le dice a las funciones de E/S del archivo de alto nivel que pasen el nombre del archivo sin analizar al controlador del dispositivo; de esta manera, puede acceder a nombres que de otro modo no serían válidos.
Leer Este artículo sobre nombres válidos de archivos/ruta en Windows y los diversos nombres reservados.
Si tiene instalado Git para Windows (v2.18), haga lo siguiente
- Abra el directorio que contiene los archivos que desea eliminar
- Haga clic izquierdo y seleccione
Git Bash Here
- Escribe
rm nul.json
en el símbolo del sistema y presione ENTER, el archivo ahora debería eliminarse.

NOTA: Estas capturas de pantalla muestran la eliminación del archivo nul.topo.json
que es otro archivo que no pude eliminar con una simple eliminación.

Tuve un problema similar. Probablemente también fue causado por Cygwin (ya que lo uso regularmente), pero desde entonces olvidé exactamente cómo se creó el archivo.
También tuve problemas para borrarlo. Seguí los consejos de algunas otras publicaciones e intenté arrancar en modo seguro para eliminar el archivo, aunque esto no hizo nada. El consejo de +xxbbcc tampoco funcionó para mí.
Sin embargo, ¡pude eliminar el archivo usando la terminal Cygwin! Cygwin crea y Cygwin destruye.
Para eliminar un archivo nul situado aquí: C:\unix\cygwin\dev\nul
Simplemente uso (probado solo en Windows 10): Del \?\C:\unix\cygwin\dev\NUL
Si tiene git en Windows, simplemente haga clic derecho en la carpeta que contiene el archivo nul -> vaya a gitbash aquí -> y escriba “rm nul” o “rm nul.json” según el tipo de archivo.

spryce
Resolví esto de una manera ligeramente diferente.
Pensé en agregar esto aquí porque ocupa un lugar destacado en los resultados de Google y tuve un problema similar para un carpeta llamado NUL.
Lo intenté rmdir\\?\C:\My\Path\NUL
y rmdir\\.\C:\My\Path\NUL
sin ningún éxito y también probé varios comandos usando bash de mi instalación de SourceTree. Sin alegría.
Al final usé DIR /X /A
from cmd para listar los nombres cortos en el directorio principal. esto me mostró NUL~1
para mi carpeta NUL e identificó el quid del problema.
Esto luego se usó en el comando estándar rmdir /s NUL~1
y finalmente resolvió el problema.

asdf
Intente escribir un programa corto en C que llame a la API de Windows para eliminar ese archivo.
http://msdn.microsoft.com/en-us/library/aa363915%28v=vs.85%29.aspx
Si eso no funciona, intente abrir un controlador para el archivo con CreateFile() con FILE_FLAG_DELETE_ON_CLOSE y luego cierre el controlador.
Has probado
del *.*
?– chqrlie
10 de julio de 2021 a las 18:32
Mejor aún, ¿cómo prevenir su creación?
– Dragos Bandur
10 dic 2021 a las 21:10