O &
operador envia um processo para segundo plano; como cd
pode ser executado sem argumentos, você o está executando e enviando para segundo plano. Se você acessar a página de manual:
NOME
cd - Altere o diretório de trabalho do shell.
SINOPSE
cd
[ -L
| -P
] [ dir ]
DESCRIÇÃO
Mude o diretório de trabalho do shell.
Mude o diretório atual para DIR . O DIR padrão é o valor da HOME
variável do shell.
A variável CDPATH
define o caminho de pesquisa para o diretório que contém
DIR . Os nomes de diretório alternativos CDPATH
são separados por dois pontos (:).
Um nome de diretório nulo é igual ao diretório atual. Se o DIR começar com uma barra ( /
), CDPATH
não será usado.
Se o diretório não for encontrado e a opção shell cdable_vars
estiver definida, a palavra será assumida como um nome de variável. Se essa variável tiver um valor, seu valor será usado para DIR .
Opções:
-L
para forçar os links simbólicos a serem seguidos,
-P
use a estrutura do diretório físico sem seguir os links simbólicos
O padrão é seguir os links simbólicos, como se -L
tivessem sido especificados.
Status de saída:
Retorna 0 se o diretório for alterado; diferente de zero, caso contrário.
VEJA TAMBÉM
bash
(1)
IMPLEMENTAÇÃO
Lançamento do GNU bash, versão 4.1.5 (1) (i486-pc-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
Licença GPLv3 +: GNU GPL versão 3 ou posterior
Você pode ver que os argumentos são opcionais. assim
cd &
é processado como
cd
e depois enviado para segundo plano. Quando cd
é chamado sem argumento, não é necessário processamento. Por isso, passa para segundo plano como "pronto" (processado).
Algumas informações sobre &
o Bash &
(e comercial) são um operador de controle interno usado para bifurcar processos. Na página de manual do Bash, "Se um comando for finalizado pelo operador de controle &
, o shell executará o comando em segundo plano em uma subshell".
Se conectado a um shell interativo, o processo recebe um número de trabalho e o PID filho é exibido. O número do trabalho abaixo é um.
bash$ sleep 30 &
[1] 3586
Observe que quando um processo é bifurcado, o PID filho é armazenado na variável especial $!
bash$ echo $!
3586
Você pode finalizar o trabalho pelo número do trabalho da seguinte forma:
bash$ jobs
[1]+ Running sleep 30 &
bash$ kill %1
[1]+ Terminated sleep 30
bash$