Pourquoi le côlon (:
) choisi comme séparateur de chemin?
Notez que je veux dire "séparateur de chemin" et non "séparateur de répertoire". Le séparateur de chemin est le symbole placé entre les entrées de la PATH
variable d'environnement.
PATH="/usr/local/sbin:/usr/local/bin:/usr/bin:..."
^ this symbol
Tout dans les ordinateurs et les logiciels était autrefois une décision délibérée prise par quelqu'un quelque part. Par exemple, pourquoi tilde représente le répertoire d'origine (et pourquoi hjkl pour les touches de direction dans vi) . J'aime connaître le contexte de cette décision.
Quelques faits aléatoires:
Le fait d'avoir deux points comme séparateur de chemin signifie que le répertoire avec deux points dans le nom ne peut pas être ajouté au chemin.
de POSIX:
Étant donné qu'il
<colon>
s'agit d'un séparateur dans ce contexte, les noms de répertoire qui pourraient être utilisés dans PATH ne devraient pas inclure de<colon>
caractère.
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html
Il ne semble pas possible d'échapper au colon. @ Random832 de Stack Overflow a inspecté le code source gérant PATH et n'a trouvé aucun mécanisme d'échappement.
PATH
avant l'introduction d' Unix version 7 (en 1979) , mais il y avait un :
chemin de recherche délimité dès 1977. PWB / Unix (Programmer's Workbench) utilisait le shell Mashey , écrit par John R. Mashey , qui se situait chronologiquement entre les obus Thompson et Bourne. … (Suite)
p
était le chemin de recherche (appelé «la séquence de recherche de répertoire Shell pour l'exécution des commandes»), avec des répertoires séparés par des deux-points. ………………………………………………………………… Fait amusant: tandis que le shell Mashey traitait le .profile
fichier, il vous permettait également de spécifier une $p
valeur initiale dans le fichier appelé .path
.
/etc/passwd
(qui contient également des chemins dans les colonnes home et shell).