El &
operador envía un proceso a segundo plano; como cd
se puede ejecutar sin argumentos, lo está ejecutando y enviándolo a segundo plano. Si toma la página de manual:
NOMBRE
cd: cambia el directorio de trabajo del shell.
SINOPSIS
cd
[ -L
| -P
] [ dir ]
DESCRIPCIÓN
Cambiar el directorio de trabajo del shell.
Cambiar el directorio actual a DIR . El DIR predeterminado es el valor de la HOME
variable de shell.
La variable CDPATH
define la ruta de búsqueda para el directorio que contiene
DIR . Los nombres de directorio alternativos CDPATH
están separados por dos puntos (:).
Un nombre de directorio nulo es el mismo que el directorio actual. Si DIR comienza con una barra inclinada ( /
), entonces CDPATH
no se usa.
Si no se encuentra el directorio y se establece la opción de shell cdable_vars
, se supone que la palabra es un nombre de variable. Si esa variable tiene un valor, su valor se usa para DIR .
Opciones:
-L
forzar que se sigan enlaces simbólicos
-P
use la estructura de directorio físico sin seguir enlaces simbólicos
El valor predeterminado es seguir enlaces simbólicos, como si -L
se especificaran.
Estado de salida:
Devuelve 0 si se cambia el directorio; de lo contrario no es cero.
VER TAMBIÉN
bash
(1)
IMPLEMENTACIÓN
GNU bash, versión 4.1.5 (1) -release (i486-pc-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
Licencia GPLv3 +: GNU GPL versión 3 o posterior
Puedes ver que los argumentos son opcionales. Entonces
cd &
se procesa como
cd
y luego se envía al fondo. Cuando cd
se llama sin argumento, no se necesita procesamiento. Entonces pasa al fondo como "hecho" (procesado).
Alguna información sobre &
The Bash &
(ampersand) es un operador de control incorporado que se utiliza para bifurcar procesos. Desde la página de manual de Bash, "Si el operador de control termina un comando &
, el shell ejecuta el comando en segundo plano en un subshell".
Si inicia sesión en un shell interactivo, al proceso se le asigna un número de trabajo y se muestra el PID secundario. El número de trabajo a continuación es uno.
bash$ sleep 30 &
[1] 3586
Tenga en cuenta que cuando se bifurca un proceso, el PID secundario se almacena en la variable especial $!
bash$ echo $!
3586
Puede terminar el trabajo por su número de trabajo de la siguiente manera:
bash$ jobs
[1]+ Running sleep 30 &
bash$ kill %1
[1]+ Terminated sleep 30
bash$