Ich habe eine Windows XP-Box (NTFS-Dateisystem), auf der ich eine Datei mit dem Namen gefunden habe NUL
. Ich war nicht in der Lage, diese Datei auf übliche Weise zu entfernen. Die Datei scheint im Besitz Administrator
der SYSTEM
Gruppe zu sein, im Gegensatz zu jeder anderen Datei im selben Verzeichnis (die anderen Dateien gehören meiner Benutzer-ID).
Wie werde ich diese Datei los? Wo ist es hergekommen?
windows
windows-xp
filesystems
ntfs
Greg Mattes
quelle
quelle
DELETE
Befehl über die Eingabeaufforderung entfernen .aux.c
ähnliche Namen im Software-Quellcode finden.) Es ist nur die Win32-API, die diese "Gerätenamen" verwaltet.Antworten:
Versuchen
in der Eingabeaufforderung.
Weitere Informationen finden Sie in diesem Microsoft Support-Artikel: Sie können eine Datei oder einen Ordner auf einem NTFS-Dateisystem-Volume nicht löschen. Dies geschieht unter "Ursache 5: Der Dateiname enthält einen reservierten Namen im Win32-Namensraum".
quelle
.
anstelle der?
..
statt?
tut nicht ganz dasselbe - das Fragezeichen verhindert die weitere Verarbeitung durch das Subsystem, wohingegen der Punkt "die aktuelle Maschine" bedeutet ... nicht ganz dasselbe, obwohl es definitiv ist verwirrend. :)\\.\
Präfix ist für den Gerätenamensraum , es gibt jedoch keine explizite Erwähnung,.
die dieselbe Bedeutung ("aktuelles X") wie für Verzeichnisnamen hat.nul
Datei ist, können Sie:del "\\?\%CD%\nul"
Das%CD%
Teil wird zum Arbeitsverzeichnis erweitert und die doppelten Anführungszeichen ("
) lassen alle auch Pfadnamen mit "ungeraden" Symbolen verarbeiten, z"\\?\C:\path,with\comma\nul"
.Wenn Sie Cygwin installiert haben, möchten Sie vielleicht wissen, dass es keine Probleme mit solchen Dateien oder Ordnern gibt. Insbesondere,
Eingegeben in das Cygwin-Terminal löscht die Datei oder den Ordner mit dem Namen
nul
oder einen Ordner, der diese enthält. Dies gilt auch für andere spezielle Dateinamen wieCON
,PRN
,AUX
,COM1
,COM2
,COM3
,COM4
,COM5
,COM6
,COM7
,COM8
,COM9
,LPT1
,LPT2
,LPT3
,LPT4
,LPT5
,LPT6
,LPT7
,LPT8
.quelle
rm
Befehl, sodass Sie cygwin nicht benötigen. Angenommen, Sie fügen Ihrem PATH das Verzeichnis bin der GNU-Tools hinzu, dann können Sie alle GNU-Goodies von cmd verwenden.Ich füge dies hier hinzu, weil es in den Google-Ergebnissen hoch ist und ich ein ähnliches Problem für einen Ordner mit dem Namen NUL hatte. Leider haben die obigen Korrekturen nicht geholfen. Ich habe mir auch keine Menge anderer Sachen angesehen.
Ich habe versucht ,
rmdir\\?\C:\My\Path\NUL
undrmdir\\.\C:\My\Path\NUL
ohne Erfolg und auch versucht , mehrere Befehle bash von meiner SourceTree Installation. Keine Freude.Am Ende habe ich
DIR /X /A
von cmd verwendet, um die Kurznamen im übergeordneten Verzeichnis aufzulisten. Dies gingNUL~1
für meinen NUL-Ordner zurück.Dies wurde dann im Standardbefehl verwendet
rmdir /s NUL~1
und schließlich das Problem behoben.quelle
Wenn Sie Git für Windows installiert haben, gehen Sie wie folgt vor
Git Bash Here
rm nul.json
an der Eingabeaufforderung ein und drücken Sie die EINGABETASTE. Die Datei sollte jetzt entfernt werden.HINWEIS: Diese Screenshots zeigen das Entfernen einer
nul.topo.json
anderen Datei, die ich mit einem einfachen Löschvorgang nicht entfernen konnte.quelle