Dlaczego dwukropek ( :
) został wybrany jako separator ścieżki?
Zauważ, że mam na myśli „separator ścieżki”, a nie „separator katalogu”. Separator ścieżek to symbol umieszczony między wpisami w PATH
zmiennej środowiskowej.
PATH="/usr/local/sbin:/usr/local/bin:/usr/bin:..."
^ this symbol
Wszystko, co znajdowało się w komputerach i oprogramowaniu, było kiedyś świadomą decyzją podejmowaną przez kogoś. Na przykład dlaczego tylda reprezentuje katalog domowy (i dlaczego hjkl dla klawiszy kierunkowych w vi) . Lubię znać tło tej decyzji.
Kilka przypadkowych faktów:
Posiadanie dwukropka jako separatora ścieżki oznacza, że do ścieżki nie można dodać katalogu z dwukropkiem w nazwie.
z POSIX:
Ponieważ
<colon>
w tym kontekście jest to separator, nazwy katalogów, które mogą być użyte w zmiennej PATH, nie powinny zawierać<colon>
znaku.
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html
Wydaje się, że ucieczka z jelita grubego nie jest możliwa. @ Random832 z przepełnienia stosu sprawdził PATH obsługujący kod źródłowy i nie znalazł mechanizmu zmiany znaczenia.
PATH
przed wprowadzeniem Unix wersji 7 (w 1979 roku) , ale nie było :
-delimited ścieżka wyszukiwania już w 1977. PWB / Unix (programisty Workbench) stosowany w Mashey skorupę , napisany przez John R. Mashey , który chronologicznie spadł między skorupą Thompsona i skorupą Bourne'a. … (Ciąg dalszy)
p
była ścieżka wyszukiwania (zwana „sekwencją przeszukiwania katalogu powłoki w celu wykonania polecenia”), z katalogami oddzielonymi dwukropkami. …………………………………………………………… Ciekawostka: podczas gdy powłoka Mashey przetworzyła .profile
plik, pozwoliła również określić $p
wartość początkową w nazwie pliku .path
.
/etc/passwd
(który zawiera również ścieżki w kolumnach głównej i powłoki).