El &operador envía un proceso a segundo plano; como cdse 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 HOMEvariable de shell.
La variable CDPATHdefine la ruta de búsqueda para el directorio que contiene
DIR . Los nombres de directorio alternativos CDPATHestá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 CDPATHno 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:
-Lforzar que se sigan enlaces simbólicos
-Puse la estructura de directorio físico sin seguir enlaces simbólicos
El valor predeterminado es seguir enlaces simbólicos, como si -Lse 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
cdy luego se envía al fondo. Cuando cdse 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$