Mi sono sempre chiesto perché cd non è un programma, ma non sono mai riuscito a trovare la risposta.
Qualcuno sa perché questo è il caso?
Risposta accettata:
Il cd il comando modifica la "directory di lavoro corrente", giusto?
"directory di lavoro corrente" è una proprietà unica per ogni processo.
Quindi, se cd fosse un programma funzionerebbe così:
cd foo- il
cdinizia il processo - il
cdprocess cambia la directory per il processo cd - il
cdil processo esce - la tua shell ha ancora lo stesso stato, inclusa la directory di lavoro corrente, che aveva prima di iniziare.