o caminho executável básico do Linux não aparece

o caminho executável básico do Linux não aparece

Estou tentando encontrar o caminho de comandos básicos como lsou cdusando whicho comando. Eu vejo o caminho para, lsmas não para cd. É claro que ambos os comandos funcionam bem. Qualquer ideia?

$ which ls
/bin/ls
$ which cd
$

Responder1

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

DeSeção "USO DO APLICATIVO" cdno padrão POSIX:

Como cdafeta o ambiente de execução do shell atual, ele é sempre fornecido como um shell regular integrado. Se for chamado em um subshell ou em um ambiente de execução de utilitário separado, como um dos seguintes:

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

isso não afeta o diretório de trabalho do ambiente do chamador.


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

typeserá 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 "qual"? O que usar então?"

informação relacionada