Denerwuje mnie to, że korzystałem z Uniksa na studiach, a teraz pracuję po stronie Windows. Jaka jest historia tej decyzji? Czy ktoś wie, dlaczego tak się udało?
Denerwuje mnie to, że korzystałem z Uniksa na studiach, a teraz pracuję po stronie Windows. Jaka jest historia tej decyzji? Czy ktoś wie, dlaczego tak się udało?
Odpowiedzi:
Unix został wprowadzony /
jako separator katalogów około 1970 roku. Nie wiem, dlaczego dokładnie ten znak został wybrany; używał systemu przodków Multics >
, ale projektanci Unixa używali go już >
razem z <
przekierowaniem w powłoce (zobacz Dlaczego katalog główny jest oznaczony /
znakiem? ).
MS-DOS 2.0 wprowadzony \
jako separator katalogów na początku lat 80. /
Nie użyto powodu, że MS-DOS 1.0 (który wcale nie obsługiwał katalogów) już używał /
do wprowadzenia opcji wiersza poleceń. Wziął to użycie /
z CP / M , który wziął go z VMS . Dokładniejsze wyjaśnienie, dlaczego dokonano tego wyboru, można przeczytać na blogu Larry'ego Ostermana (MS-DOS miał nawet na krótko opcję zmiany znaku opcji na -
i separatora katalogów na /
, ale się nie trzymał).
/
jest rozpoznawany przez większość interfejsów API na poziomie programisty (we wszystkich wersjach DOS i Windows). Możesz więc często, ale nie zawsze, uciec od używania /
jako separatora katalogów w systemie Windows. Godnym uwagi wyjątkiem jest to, że nie można użyć /
jako separatora po \\?
prefiksie, który (nawet w systemie Windows 7) jest jedynym sposobem na określenie ścieżki przy użyciu Unicode lub zawierającej więcej niż 260 znaków.
Niektóre elementy interfejsu użytkownika obsługują /
jako separator katalogów w systemie Windows, ale nie wszystkie. Niektóre programy po prostu przekazują nazwy plików do bazowego interfejsu API, więc obsługują /
i są \
obojętne. W interpretatorze poleceń (w command.com
lub cmd
) możesz używać /
w wielu przypadkach, ale nie zawsze; jest to częściowo zależne od wersji systemu Windows (na przykład cd /windows
działa w XP i 7, ale nie w Windows 9x). Pole wprowadzania ścieżki Eksploratora akceptuje /
(przynajmniej od XP; prawdopodobnie dlatego, że akceptuje również adresy URL). Z drugiej strony standardowe okno dialogowe otwierania pliku odrzuca ukośniki .
/
jest rozpoznawany jako separator katalogów przez wiersz poleceń MS-DOS lub Windows.
/
jest akceptowane w wierszu poleceń? Na przykład, co robi dir /p
? i dir c:/p
? i c:/windows/notepad.exe
? i start /windows/notepad.exe
? itp. (Nie mam tutaj komputera z systemem Windows do testowania).
/
był prawdopodobnie używany jako separator katalogów w systemie UNIX, ponieważ był to łatwy (niezmieniony) klucz do wykreślenia typu Teletype. Nieprzetworzone znaki specjalne były : - ; , . /
.
/
(i -
dla przełączników) takich jak Xenix, i zainspirowany Xenix, ale IBM wydał zanim Microsoft dostarczył OEM, a IBM użył ` (and
/ `dla przełączników) i zmienili monit z A:
na, A>
więc zmienili domyślną i wysłali błędną dokumentację (wciąż zakładając /
/ -
) oraz informację, że została zmieniona i dlaczego.
Bazowego Windows API może zaakceptować albo odwrotny ukośnik lub ukośnik do oddzielnych komponentów katalogów i plików na ścieżce, ale konwencja Microsoft jest użycie ukośnika i API, które zwracają ścieżki umieścić ukośnik w.
MS-DOS 2.0 skopiował hierarchiczny system plików z Uniksa i dlatego użył ukośnika, ale (prawdopodobnie pod naciskiem IBM ) dodał odwrotny ukośnik, aby umożliwić wpisanie ścieżek do powłoki poleceń, zachowując zgodność z MS-DOS 1.0 i CP / M, gdzie ukośnik był wskaźnikiem opcji wiersza polecenia.
Porównać
dir/w
który pokazuje bieżący katalog w szerokim formacie przeciwko
dir\w
który uruchamia w
plik w reżyserze dir
.
Bibliografia: