Sous OS X 10.8, j'ai regardé mon dossier /bin et j'ai constaté que cd ne s'y trouvait pas, mais plutôt dans le dossier /usr/bin. Comment cela se fait-il ? D'après le FHS ( Norme de hiérarchie des systèmes de fichiers . Je sais que /bin doit contenir les binaires essentiels, c'est-à-dire ceux qui sont nécessaires lorsqu'aucun autre système de fichiers n'est monté. Est-ce que cd n'est pas assez essentiel ? (au fait, il semble que la commande "su" se trouve également dans /usr/bin). Je sais qu'OS X ne suit pas strictement le FHS, mais y a-t-il une raison à ces différents emplacements des binaires ?
Réponse
Trop de publicités?cd
est une fonction intégrée du shell, et a doit être intégré pour fonctionner. S'il était exécuté comme une commande normale, il s'exécuterait en tant que sous-processus, modifierait le répertoire de ce sous-processus, puis sortirait... sans aucun effet sur le répertoire de l'interpréteur de commandes parent.
En ce qui concerne les su
La distinction fondamentale entre /bin et /usr/bin est que /usr/bin peut se trouver sur un système de fichiers différent de celui de la racine, et donc ne pas être disponible au début du processus de démarrage ; par conséquent, /bin (et /sbin) doit contenir toutes les commandes nécessaires au début du processus de démarrage. Sous OS X, su
n'est apparemment pas nécessaire au démarrage.