caminho executável básico do linux não aparece [duplicado]

0

Estou tentando encontrar o caminho dos comandos básicos, como ls ou cd usando o comando which . Eu vejo o caminho para ls , mas não para cd . Claro que ambos os comandos funcionam bem. Alguma idéia?

$ which ls
/bin/ls
$ which cd
$
    
por Vee 12.04.2017 / 20:57

1 resposta

2

cd é sempre um comando interno fornecido pelo próprio shell. Não será encontrado como um utilitário externo. Isso não é específico para o Linux.

Na seção "USO DO APLICATIVO" referente a cd no padrão POSIX :

Since cd affects the current shell execution environment, it is always provided as a shell regular built-in. If it is called in a subshell or separate utility execution environment, such as one of the following:

(cd /tmp)
nohup cd
find . -exec cd {} \;

it does not affect the working directory of the caller's environment.

Uma maneira portátil de encontrar o caminho de um comando é usar command -v :

bash-4.4$ command -v ls
/bin/ls
bash-4.4$ command -v cd
cd

type será um pouco mais detalhado:

bash-4.4$ type ls
ls is /bin/ls
bash-4.4$ type cd
cd is a shell builtin

Veja também " Por que não usar" which "? usar então? "

    
por 12.04.2017 / 21:07