Je me suis toujours demandé pourquoi cd
n'est pas un programme, mais n'a jamais réussi à trouver la réponse.
Quelqu'un sait pourquoi c'est le cas ?
Réponse acceptée :
Le cd
commande modifie le "répertoire de travail actuel", n'est-ce pas ?
"répertoire de travail actuel" est une propriété unique à chaque processus.
Donc, si cd
était un programme, il fonctionnerait comme ceci :
cd foo
- le
cd
le processus démarre - le
cd
le processus change le répertoire pour le processus cd - le
cd
traiter les sorties - votre shell a toujours le même état, y compris le répertoire de travail actuel, qu'il avait avant que vous ne commenciez.