Para o seu exemplo concreto, existe uma função cd_builtin
, que é definida em builtins / cd.def (no código-fonte bash). Normalmente faz um cd
chamando essa função. Mas ele pode ser usado primeiro se você usá-lo em um pipeline - por exemplo, cd / | echo
forks e chamadas cd_builtin
no filho. Você também pode perceber isso pela maneira como o diretório não muda:
anthony@Zia:~$ cd /tmp/
anthony@Zia:/tmp$ cd / | echo -n
anthony@Zia:/tmp$ cd /
anthony@Zia:/$
Observe como o diretório só muda quando não canço de cd
.