Мене дратує те, що я користувався Unix в коледжі і зараз працюю на стороні Windows. Яка історія стоїть за цим рішенням? Хтось знає, чому так вийшло?
Мене дратує те, що я користувався Unix в коледжі і зараз працюю на стороні Windows. Яка історія стоїть за цим рішенням? Хтось знає, чому так вийшло?
Відповіді:
Unix був представлений /
як роздільник каталогів близько 1970 року. Я не знаю, чому саме цей символ був обраний; використовувалася система предків Multics >
, але дизайнери Unix вже використовували >
разом з <
перенаправленням в оболонку (див. Чому кореневий каталог позначається /
знаком? ).
MS-DOS 2.0 введений \
як роздільник каталогів на початку 1980-х. Причина /
не була використана в тому, що MS-DOS 1.0 (який взагалі не підтримував каталоги) вже використовував /
для введення параметрів командного рядка. Це використання було використано /
з CP / M , яке взяло його від VMS . Ви можете прочитати більш ретельне пояснення того, чому цей вибір був зроблений у блозі Ларрі Остермана (MS-DOS навіть короткочасно мав можливість змінити параметр символу на -
та роздільник каталогів /
, але він не дотримувався).
/
його розпізнають більшість API програмного рівня (у всіх версіях DOS та Windows). Таким чином, ви можете часто, але не завжди уникати використання /
в якості роздільника каталогів під Windows. Визначним винятком є те, що ви не можете використовувати /
як роздільник після \\?
префікса, який (навіть у Windows 7) - єдиний спосіб вказати шлях за допомогою Unicode або містить більше 260 символів.
Деякі елементи інтерфейсу користувача підтримують /
як роздільник каталогів під Windows, але не всі. Деякі програми просто передають назви файлів до базового API, тому вони підтримують /
та \
байдуже. У інтерпретаторі команд (в command.com
або cmd
) ви можете використовувати /
в багатьох випадках, але не завжди; це частково залежить від версії Windows (наприклад, cd /windows
працює в XP та 7, але не в Windows 9x). Вікно вводу шляху до Explorer приймає /
(принаймні з XP вгору; можливо, тому що він також приймає URL-адреси). З іншого боку, стандартне діалогове вікно відкритого файлу відхиляє косої риски .
/
розпізнається як роздільник каталогів командним рядком MS-DOS або Windows.
/
прийнято в командному рядку? Наприклад, що робить dir /p
? і dir c:/p
? і c:/windows/notepad.exe
? і start /windows/notepad.exe
? і т. д. (я не маю тут машину Windows для тестування.)
/
ймовірно, він використовувався як роздільник каталогів в UNIX, оскільки це був легкий (не змінений) ключ для удару по телетайпу. Незмінені спеціальні символи були : - ; , . /
.
/
(і -
для комутаторів), як Xenix, і надихала Xenix, але IBM випускала перед тим, як Microsoft поставлялася до OEM-виробників, а IBM використовував ` (and
/ `для комутаторів) і змінили підказку з A:
на, A>
щоб вони змінили стандартну документацію за замовчуванням та відвантажували документацію (все ще припускаючи /
/ -
), плюс примітку, що вона була змінена і чому.
, Що лежить в основі Windows API може приймати або зворотну косу риску або в окремих каталогів і файлів компонентів шляху, але угода Microsoft є використання зворотної косої межі, і API - інтерфейси , які повертають шляху помістити зворотну косу риску.
MS-DOS 2.0 скопіював ієрархічну файлову систему з Unix і, таким чином, застосував косую косу передачу, але (можливо, за наполяганням IBM ) додав зворотний косу рису, щоб дозволити введення шляхів до командної оболонки, зберігаючи сумісність з MS-DOS 1.0 і CP / M, де коса риса була індикатором параметра командного рядка.
Порівняйте
dir/w
який показує поточний каталог у широкому форматі проти
dir\w
який запускає w
файл у директора dir
.
Список літератури: