Я только что заметил, что невозможно назвать папку ._.
- она получает имя ._
вместо. Иногда он исчезает сразу после присвоения ему имени, но появляется снова после обновления представления. В Windows, похоже, есть проблема с точками в конце имени файла - почему это так?
74
.
в Windows.cd -- -_-
может работать.--
Является общим «конец опций» маркера.--
по себе означает « это конец опций, рассматривайте все, что начинается с-
буквального значения ». Только что проверил:mkdir -- -_-
иcd -- -_-
работает как я ожидал../-_-
должно работать так же.cd "-_-"
оболочка использует кавычки для группировки, но не рассматривает их как часть аргумента; это ошибки сinvalid option
Ответы:
Windows обычно требует, чтобы файлы не имели расширения или имели длину не менее одного символа; это не круто с расширениями нулевой длины, то есть именами файлов, которые заканчиваются
.
. Папки тоже могут иметь расширения, поэтому Windows не позволяет их именам заканчиваться на.
. Источник из статьи, на которую ссылается DavidPostill :(Подчеркните мое.) Если вы попытаетесь завершить файл или каталог с именем точкой, Windows просто предполагает, что вы не хотите расширений, и удаляет его, даже если вы создаете его с
md
помощью командной строки.Опасная зона! Если вы хотите, чтобы имя папки заканчивалось на конце
.
, вам нужно использовать волшебную необработанную последовательность переопределения имени\\?\
. В командной строкеmd \\?\C:\path\to\container\._.
действительно создаст папку с именем._.
, но у многих программ будут проблемы с ней, даже в Explorer:Такой каталог может быть удален только с
rd
последующим его\\?\
именем или переименован с коротким (8.3,dir /x
) именем.источник
dir /x
делает его довольно простым, и в других случаях это имя удобно.Кажется, в Windows есть проблема с точками в конце имени файла? Почему это?
Ссылка на источник ниже содержит более подробную информацию о правилах именования.
Файлы имен источников , пути и пространства имен
источник
Это не ошибка. Это сделано для предотвращения проблем совместимости.
Это пережиток старых дней DOS.
Файловые системы FAT12 (floppy) и FAT16 (FAT16 до поддержки длинных имен файлов, представленных в Windows 95) имели только имена файлов, хранящиеся в 11 байтах:
8 байтов для имени, 3 для расширения. «Период» между именем и расширением даже не был сохранен. Это подразумевалось и автоматически добавлялось для целей отображения.
Каталоги вообще не имеют расширений. Вместо этого 3 байта для расширения были заполнены символами "$" (которые были недопустимы в реальных именах).
Поскольку Windows по-прежнему совместима с этим проводником, а многие другие компоненты Windows автоматически отключают завершающий период, чтобы предотвратить возникновение проблем совместимости.
Как уже говорили другие, вы можете обрабатывать такие папки, используя семантику RAW (префикс \\? \ Перед абсолютным именем пути).
За кулисами NTFS и сетевые файловые системы не имеют проблем с такими файлами и папками. Это всего лишь случай, когда Explorer пытается помешать пользователю создать что-то, что может вызвать проблемы для другого программного обеспечения.
(На самом деле есть и другие остатки:
имена файлов, такие как COM, COM1, COM2, AUX, PRN, LPT, LPT1, LPT2, LPT3, CON, могут вызывать аналогичные проблемы, когда Explorer и многие другие компоненты Windows запутываются потому что эти имена являются «зарезервированными» именами, которые также относятся к эпохе DOS.)
источник
mkdir testfile.name
) и отобразите его имя DOS в Windows (dir /x
) - вы получитеTESTFI~1.NAM
, как и ожидалось.Проблема здесь в том, что Windows (DOS) допускает 8.3 имен файлов в файловых системах FAT. Значение 8 символов, а затем. следуют три символа. Unix и Linux допускают любой символ, кроме / и \ 0. \ 0 - символ конца строки C, а / - разделитель каталога. Все остальное можно использовать.
Windows 95 обошла эту проблему, поддерживая базу данных коротких (8.3) имен файлов в метаданных длинных имен файлов (LFN). Если вы стерли файлы ОС Windows 95, при следующей установке Windows 95 у вас останутся файлы со странными именами на диске. Например, «Мои документы» может иметь имя MYDOCU ~ 1 на диске. Очевидно, что если вы потеряете метаданные, вы не сможете легко их преобразовать.
Оболочка должна справляться со многими историческими приростами, которые существуют со времен MS-DOS.
Надеюсь это поможет
источник