У меня есть Windows XP box (файловая система NTFS), в которой я нашел файл с именем NUL
. Я не смог удалить этот файл каким-либо обычным способом. Файл, кажется, принадлежит Administrator
в SYSTEM
группе, в отличие от любого другого файла в том же каталоге (другие файлы принадлежат моему идентификатору пользователя).
Как мне избавиться от этого файла? Откуда это?
windows
windows-xp
filesystems
ntfs
Грег Маттес
источник
источник
DELETE
команду с помощью командной строки.aux.c
Подобные имена можно найти в исходном коде программного обеспечения.) Этим «именам устройств» управляет исключительно API Win32.Ответы:
Пытаться
в командной строке.
Подробнее см. В этой статье службы поддержки Microsoft: вы не можете удалить файл или папку на томе файловой системы NTFS в разделе «Причина 5: имя файла включает зарезервированное имя в пространстве имен Win32».
источник
.
место?
..
вместо?
не совсем то же самое - знак вопроса препятствует дальнейшей обработке подсистемой, тогда как точка означает «текущая машина» ... не совсем то же самое, хотя это определенно запутанный. :)\\.\
Префикс не является для пространства имен устройств , но нет явного упоминания , что.
имеет такое же значение ( «ток X») , как это делает для имен каталогов.nul
файлом, вы можете: часть расширяются в рабочем каталог и двойные кавычки ( ) сделать это все ручки и имена маршрута с «нечетными» символами, например .del "\\?\%CD%\nul"
%CD%
"
"\\?\C:\path,with\comma\nul"
В качестве альтернативы, если у вас установлен Cygwin , вы можете узнать, что у него нет проблем с такими файлами или папками. В частности,
набранный в терминале Cygwin удаляет названный файл или папку
nul
или папку, содержащую его. Это также применимо к другим специальным файловым именам , таким какCON
,PRN
,AUX
,COM1
,COM2
,COM3
,COM4
,COM5
,COM6
,COM7
,COM8
,COM9
,LPT1
,LPT2
,LPT3
,LPT4
,LPT5
,LPT6
,LPT7
,LPT8
.источник
rm
поэтому вам не нужен Cygwin. Предполагая, что вы добавили каталог bin инструментов GNU в вашу переменную PATH, вы можете использовать все возможности GNU из cmd.Я добавляю это здесь, потому что это высоко в результатах Google, и у меня была похожая проблема для папки с именем NUL. К сожалению, вышеуказанные исправления не помогли. Также не было тонны других вещей, на которые я смотрел.
Я попробовал
rmdir\\?\C:\My\Path\NUL
иrmdir\\.\C:\My\Path\NUL
без какого - либо успеха , а также пытался несколько команд с помощью Баша из моей установки SourceTree. Нет радостиВ конце я использовал
DIR /X /A
из cmd список коротких имен в родительском каталоге. Это вернулосьNUL~1
для моей папки NUL.Затем это использовалось в стандартной команде
rmdir /s NUL~1
и, наконец, решило проблему.источник
Если у вас установлен Git для Windows, сделайте следующее
Git Bash Here
rm nul.json
в командной строке и нажмите клавишу ВВОД, теперь файл должен быть удален.ПРИМЕЧАНИЕ. Эти снимки экрана показывают удаление файла,
nul.topo.json
который является другим файлом, который я не мог удалить простым удалением.источник