Por que o 'sudo pwd' funciona, mas não o 'sudo cd'?

0

Muitas das respostas SO sugerem que é porque cd é interno, mas type cd e type pwd retornam "shell builtin" e somente sudo cd retorna um "comando não encontrado".

O cd é tratado como um caso especial ao contrário de muitas respostas no SO, que é " sudo só funciona com programas"?

    
por Karthik Vijay 26.05.2017 / 07:46

2 respostas

2

pwd existe como um shell embutido (é por isso que type pwd retorna que é um shell embutido) e separadamente como um Utilitário GNU Core . A versão do pwd que o seu sistema está usando é a versão do Utilitário GNU Core . É um executável e, como tal, o sudo pode ser usado para executá-lo; ao contrário de cd , que é um comando interno do shell.

Você pode verificar isso por si mesmo. Digite ambos os comandos e observe os resultados. (se houver várias versões do mesmo comando em seu sistema, o comando which dirá qual delas está sendo invocada quando você inseri-lo)

which pwd

which cd

Um shell embutido não retornará nenhum caminho de pasta para um executável quando você executar o comando which . Aqui estão saídas de exemplo de ambos os comandos no meu sistema:

nate@linux:~> which pwd  
/usr/bin/pwd


nate@linux:~> which cd
which: no cd in (/home/nate/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/usr/lib/mit/bin:/usr/lib/mit/sbin:/home/nate/Scripts:/home/nate/Scripts)
    
por 26.05.2017 / 08:38
2

Existe um executável pwd em algum lugar (tente whereis pwd ) e sudo o usa.

    
por 26.05.2017 / 08:00