GNU/Linux >> Tutoriales Linux >  >> Linux

¿El punto del comando externo `cd`?

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.


Linux
  1. ¿Cómo asignar la salida de un comando a una variable de shell?

  2. ¿Cuál es la diferencia entre &> y >&en bash?

  3. ¿Cómo ejecutar el comando Vim desde el shell?

  4. ¿Cuál es el punto del comando hostnamectl?

  5. ¿Ocultar la salida de un comando de shell solo en caso de éxito?

Comando fuente en Linux

¿Qué es el Shell en Linux?

El comando del temporizador en Linux

Construcción de comandos

Comando Bash fc:maneja fácilmente el Bash Shell como un profesional

¿Qué significa la sintaxis |&en lenguaje shell?