Имена, которые Windows читает не как обычные папки

В командной строке DOS короткие обозначения вроде `CON`, `PRN` и `NUL` служили именами устройств. `CON` означало консоль — ввод с клавиатуры или вывод на экран, `PRN` было связано с принтером, а `NUL` позволяло отправить данные в никуда. Программа могла обратиться к такому имени почти так же, как к файлу, и операционная система направляла запрос устройству.

Почему запрет пережил старую командную строку

Windows сохранила совместимость с программами и способами работы с файлами, унаследованными от DOS. Поэтому распознавание этих слов как специальных имён осталось частью правил доступа к файлам: система может трактовать `CON` или `NUL` как устройство, а не как название каталога на диске. Если разрешить папку с таким именем, разные программы могли бы понимать один и тот же путь по-разному.

Ограничение касается не только трёх имён. К зарезервированным относятся также, например, `AUX` и обозначения последовательных и параллельных портов вроде `COM1` и `LPT1`. Важно именно то, как Windows разбирает имя: добавление расширения не всегда помогает — имя `NUL.txt` тоже может распознаваться как зарезервированное.

Что это меняет на практике

Обычно проблема обнаруживается при переносе файлов из другой системы, распаковке архива или запуске скрипта: имя, допустимое там, Windows отвергает либо программа обращается не к ожидаемому объекту. Это не значит, что такие слова вообще нельзя встретить в тексте или использовать где угодно; ограничение относится к именам файлов и папок в Windows.

Так старое соглашение о доступе к устройствам продолжает влиять на создание каталогов спустя десятилетия: для системы `NUL` — не просто короткое имя, а команда, за которой закреплён особый смысл.