Jak je uvedeno v této jemné odpovědi, systémy POSIX mají externí binární cd kromě vestavěného pláště. V OS X 10.8 je to /usr/bin/cd . Nemůžete jej používat jako vestavěné cd protože se ukončí okamžitě po změně vlastního pracovního adresáře. K jakému účelu slouží?
Přijatá odpověď:
Slouží především k zajištění toho, aby byla POSIXová truhla nástrojů k dispozici uvnitř i vně shellu (viz zdůvodnění POSIX pro jejich vyžadování).
Pro cd , to není příliš užitečné, ale všimněte si, že cd mění adresáře, ale má další vedlejší účinky:vrací stav ukončení, který pomáhá určit, zda jste schopni chdir() do tohoto adresáře nebo ne a zobrazí užitečnou chybovou zprávu vysvětlující, proč nemůžete chdir() když nemůžete.
Příklad:
dirs_i_am_able_to_cd_into=$(find . -type d -exec cd {} ; -print)
Dalším potenciálním vedlejším efektem je automatické připojení adresáře.
Na několika systémech je většina externích příkazů pro standardní vestavěné shelly implementována jako symbolický odkaz na stejný skript, který dělá:
#! /bin/sh -
"${0##*/}" "[email protected]"
To znamená spustit shell a spustit v něm vestavěný.
Některé jiné systémy (jako GNU) mají nástroje jako skutečné spustitelné příkazy, což může vést k nejasnostem, pokud se chování liší od verze vestavěné do shellu.