Por que digitarsudo cd tanto faznão vai mudar o diretório?
Responder1
cd
é um shell embutido. sudo
só funciona com executáveis. Você poderia fazer isso, sudo sh -c 'cd dirname'
mas assim que o shell sair, você retornará ao diretório de onde começou. Se você disser o que está tentando realizar, posso ajudá-lo a encontrar uma maneira de fazer isso.
Responder2
Em vez disso, tente usar sudo -s
para iniciar um shell root e simplesmente cd
entrar no diretório.
Quando terminar como root, pressione CtrlDou digite exit
.
Como Arjan sugere em seu comentário abaixo, é importante observar que, como root, pode-se facilmente causar danos a componentes essenciais do sistema.Use com cuidado!
Responder3
Você pode simplesmente su
se tornar root e então cd
tudo o que quiser... Eu sei que uma resposta já foi aceita, mas se alguma não estiver na lista de sudoers então esta é a única opção.
Responder4
Existem duas maneiras de "não funcionar", dependendo do seu sistema operacional:
Se o seu sistema operacional seguir POSIX, a execução
sudo cd
fará com que ocomando externo"cd" (geralmente localizado em/usr/bin/cd
) para executar em um processo bifurcado como usuário root. Esse processo altera os diretórios com sucesso. Assim que o processo for concluído, você retornará ao seu shell normal, que ainda está no diretório onde foi iniciado.Portanto,
sudo cd
é executado sem erros, mas não altera o diretório de trabalho atual do seu shell atual.(referência:esta resposta)
Caso contrário, a execução
sudo cd
fará com que aconteça o seguinte. Seu computador irá procurar em seu PATH, tentando encontrar um executável chamado “cd”. Não encontrará um. (apenas ocomando interno do shell"cd" existe e não é um arquivo executável). Portanto, você recebe um erro. (No Ubuntu, recebo a mensagem de errosudo: cd: command not found
.)Então
sudo cd
corre com erro.