web-dev-qa-db-fra.com

Supprimer un fichier nommé "NUL" sous Windows

J'ai exécuté un programme sur Windows 7 qui a été compilé sous Cygwin et a transmis "NUL" comme nom de fichier de sortie. Au lieu de supprimer la sortie, il a en fait créé un fichier nommé "NUL" dans le répertoire actuel. (Apparemment, il attend "/ dev/null", même sous Windows.) Maintenant, je suis bloqué avec ce fichier "NUL" que je ne peux pas supprimer!

J'ai déjà essayé:

  • Explorateur Windows - erreur: "Fonction MS-DOS non valide" (oui, c'est ce que ça dit sérieusement!)
  • Invite de commandes utilisant "del NUL" - erreur: "Le nom du fichier, le nom du répertoire ou la syntaxe de l'étiquette de volume Est incorrecte."
  • Suppression de tout le répertoire - même transaction que la suppression du fichier
  • remove() dans un programme C - échoue également

Comment puis-je me débarrasser de ces fichiers NUL (j'en ai plusieurs maintenant), à moins d'installer tout l'environnement Cygwin et de compiler un programme C sous Cygwin pour le faire?

34
EM0

Ouvrez une invite de commande et utilisez ces commandes pour tout d'abord renommer puis supprimer le fichier NUL:

C:\> rename \\.\C:\..\NUL. deletefile.txt
C:\> del deletefile.txt

L'utilisation du préfixe \\.\ indique aux fonctions d'E/S de fichier de haut niveau de transmettre le nom de fichier non analysé au pilote de périphérique - de cette manière, vous pouvez accéder à des noms qui ne sont pas valides.

Lisez cet article à propos des noms de fichiers/chemins valides dans Windows et des différents noms réservés.

88
xxbbcc

Si vous avez installé Git pour Windows (v2.18), procédez comme suit: 

  1. Ouvrez le répertoire contenant les fichiers que vous souhaitez supprimer
  2. Clic gauche et sélectionnez Git Bash Here
  3. Tapez rm nul.json à l'invite de commande et appuyez sur Entrée. Le fichier doit maintenant être supprimé.

 run Git Bash Here

REMARQUE: Ces captures d'écran montrent la suppression du fichier nul.topo.json, qui est un autre fichier que je n'ai pas pu supprimer avec une simple suppression.

 after command execution

3
Geovani Martinez

J'ai eu un problème similaire. Cygwin l’a probablement aussi provoqué (car je l’utilise régulièrement), mais j’ai depuis oublié la manière dont le fichier a été créé.

J'ai aussi eu du mal à le supprimer. J'ai suivi les conseils de certains autres messages et j'ai essayé de démarrer en mode sans échec pour supprimer le fichier, bien que cela ne fasse rien. Le conseil de + xxbbcc n'a pas fonctionné pour moi non plus.

Cependant, j'ai pu supprimer le fichier en utilisant le terminal Cygwin! Cygwin crée et Cygwin détruit.

3
Benmj

Pour supprimer un fichier nul situé ici: C:\unix\cygwin\dev\nul

J'utilise simplement (testé uniquement sous Windows 10): Del \?\C:\unix\cygwin\dev\NUL

1
Olivier

J'ai résolu ceci d'une manière légèrement différente. 

Je pensais que je voudrais ajouter ceci ici car il est élevé dans les résultats de Google et j'ai eu un problème similaire pour un folder nommé NUL. 

J'ai essayé rmdir\\?\C:\My\Path\NUL et rmdir\\.\C:\My\Path\NUL sans succès et j'ai également essayé plusieurs commandes en utilisant bash depuis mon installation SourceTree. Pas de joie.

Finalement, j'ai utilisé DIR /X /A de cmd pour lister les noms abrégés dans le répertoire parent. Cela m'a montré NUL~1 pour mon dossier NUL et a identifié l'essentiel du problème.

Cela a ensuite été utilisé dans la commande standard rmdir /s NUL~1 et a finalement résolu le problème. 

0
spryce