Все починається зі старої команди PIP
CP / M - ця команда, яка використовується для копіювання файлів, дозволила вам вказати назви спеціальних пристроїв замість файлів.
Гері Кілдалл, який розробив CP / M, ґрунтувався на значній частині дизайну його файлової структури та процесора управління на операційних системах цифрового обладнання, таких як RSTS / E для PDP-11. Окрім доступу до файлів на дискеті, команда PIP в CP / M також може передавати дані до та із наступних "спеціальних файлів":
CON: — console (input and output)
AUX: — an auxiliary device. In CP/M 1 and 2, PIP used PUN: (paper tape punch) and RDR: (paper tape reader) instead of AUX:
LST: — list output device, usually the printer
PRN: — as LST:, but lines were numbered, tabs expanded and form feeds added every 60 lines
NUL: — null device, akin to /dev/null
EOF: — input device that produced end-of-file characters, ASCII 0x1A
INP: — custom input device, by default the same as EOF:
OUT: — custom output device, by default the same as NUL:
Однак це не були справжні файли пристроїв, оскільки їх обробка була обмежена PIP.
Потім на початку 80-х з'явився DOS, клон 8086 CP / M мав працювати над тодішнім новим ПК на IBM. DOS розширив цю концепцію трохи далі - вище були "спеціальні файли" і їх можна було вказати, де файл очікувався в командах DOS. Таким чином, вбудована copy
команда DOS може використовуватися для друку документа шляхом виконання copy myfile.txt prn:
. (Пізніші версії CP / M могли б зробити це, але я сумніваюся.)
Flash вперед до Windows 95. Сам побудований поверх DOS, код, який обробляє ці спеціальні імена файлів, залишився, але, очевидно, не був занадто добре інтегрований у графічний інтерфейс Windows 95. Це спричинило деякі проблеми, такі як помилка CON \ CON - і це, як відомо, також викликало проблеми з IE.
Ймовірно, через параноїю з подальшими ховаючими помилками (навіть якщо жодна не повинна існувати в NT-версіях Windows) Microsoft вирішила зробити це там, де Explorer завжди відкидає будь-яку спробу створити файл з таким іменем. Смішно, що навіть у системі Windows 8, яку я зараз використовую, я все ще не можу створити папку під назвою "con". (Windows 10 все одно не дозволить вам це зробити).