Como se menciona en esta excelente respuesta, los sistemas POSIX tienen un cd
binario externo además del shell incorporado. En OS X 10.8 es /usr/bin/cd
. No puedes usarlo como el cd
incorporado ya que sale inmediatamente después de cambiar su propio directorio de trabajo. ¿Para qué sirve?
Respuesta aceptada:
Sirve principalmente para asegurarse de que el cofre de herramientas POSIX esté disponible tanto dentro como fuera de un caparazón (consulte la justificación de POSIX para requerirlo).
Para cd
, eso no es tremendamente útil, pero tenga en cuenta que cd
cambia directorios pero tiene otros efectos secundarios:devuelve un estado de salida que ayuda a determinar si puede chdir()
a ese directorio o no, y genera un mensaje de error útil que explica por qué no puede chdir()
cuando no puedes.
Ejemplo:
dirs_i_am_able_to_cd_into=$(find . -type d -exec cd {} ; -print)
Otro posible efecto secundario es el montaje automático de un directorio.
En algunos sistemas, la mayoría de los comandos externos para los componentes estándar del shell se implementan como un enlace simbólico al mismo script que lo hace:
#! /bin/sh -
"${0##*/}" "[email protected]"
Eso es iniciar un shell y ejecutar el integrado en él.
Algunos otros sistemas (como GNU) tienen utilidades como verdaderos comandos ejecutables que pueden generar confusiones cuando el comportamiento difiere de la versión integrada del shell.