Qual é o comportamento de & operator [duplicate]?

1

Estou tentando encadear os comandos no linux, estou usando a distribuição 14.04 do Ubuntu. O objetivo é criar um diretório e entrar nesse diretório. Geralmente fazemos isso

mkdir foldername
cd foldername

Perfeito, quando tentamos isso,

mkdir gates
cd gates 

funciona como esperado. Mas as coisas não estão funcionando como esperado ao usar &

mkdir gates & cd gates , não funciona, o erro é no such file or directory . Quando pressionado, digite as portas do diretório na próxima etapa. Porque isso está acontecendo?. Mas ls & mkdir gates parece estar funcionando bem

    
por gates 23.06.2015 / 07:13

1 resposta

4

& é o operador de plano de fundo do shell ; coloca o comando precedendo-o em segundo plano e continua.

Então

mkdir gates &
cd gates

inicia mkdir gates em segundo plano e executa imediatamente cd gates , que tenta alterar o diretório antes de ser criado (e falhar).

ls & mkdir gates

funciona porque mkdir gates não depende de nada que ls faça; tudo o que acontece é que ls é iniciado em segundo plano, exibindo a listagem de diretórios, enquanto mkdir cria o diretório gates .

Você provavelmente está procurando

mkdir gates && cd gates

que mudará de diretório somente se mkdir for bem-sucedido; você pode preferir

mkdir -p gates && cd gates

que não falhará se o diretório já existir.

    
por 23.06.2015 / 07:16