Vždy mě zajímalo, proč cd
není program, ale nikdy se mi nepodařilo najít odpověď.
Ví někdo, proč tomu tak je?
Přijatá odpověď:
cd
příkaz upravuje „aktuální pracovní adresář“, že?
„aktuální pracovní adresář“ je vlastnost, která je jedinečná pro každý proces.
Pokud tedy cd
byl program, který by fungoval takto:
cd foo
cd
proces se spustícd
process změní adresář pro proces cdcd
proces ukončí- váš shell má stále stejný stav, včetně aktuálního pracovního adresáře, jako před spuštěním.