Perché i due punti ( :
) sono stati scelti come separatori di percorso?
Nota che intendo "separatore di percorso" e non "separatore di directory". Il separatore di percorso è il simbolo posto tra le voci nella PATH
variabile di ambiente.
PATH="/usr/local/sbin:/usr/local/bin:/usr/bin:..."
^ this symbol
Tutto in computer e software una volta era una decisione deliberata presa da qualcuno da qualche parte. Ad esempio, perché tilde rappresenta home dir (e perché hjkl per i tasti di direzione in vi) . Mi piace conoscere lo sfondo di questa decisione.
Alcuni fatti casuali:
Avere due punti come separatore di percorso significa che la directory con due punti nel nome non può essere aggiunta al percorso.
da POSIX:
Poiché
<colon>
è un separatore in questo contesto, i nomi di directory che potrebbero essere utilizzati in PATH non devono includere un<colon>
carattere.
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html
Sembra che non sia possibile sfuggire al colon. @ Random832 da Stack Overflow ha ispezionato il codice sorgente gestendo PATH e non ha trovato alcun meccanismo di escape.
PATH
prima dell'introduzione della versione 7 di Unix (nel 1979) , ma c'era un :
percorso di ricerca delimitato già nel 1977. PWB / Unix (Programmer's Workbench) utilizzava la shell Mashey , scritta da John R. Mashey , che cadde cronologicamente tra la conchiglia Thompson e la conchiglia Bourne. ... (proseguendo)
p
era il percorso di ricerca (chiamato "sequenza di ricerca della directory Shell per l'esecuzione del comando"), con directory separate da due punti. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... Fatto divertente: mentre la shell Mashey ha elaborato il .profile
file, ti ha anche permesso di specificare un $p
valore iniziale nel file chiamato .path
.
/etc/passwd
(che contiene anche percorsi nelle colonne home e shell).