Por que o “sudo cd” não funciona?

Por que o “sudo cd” não funciona?

Por que digitarsudo cd tanto faznão vai mudar o diretório?

Responder1

cdé um shell embutido. sudosó 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 -spara iniciar um shell root e simplesmente cdentrar 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 suse tornar root e então cdtudo 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:

  1. Se o seu sistema operacional seguir POSIX, a execução sudo cdfará 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)

  2. Caso contrário, a execução sudo cdfará 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 erro sudo: cd: command not found.)

    Então sudo cdcorre com erro.

informação relacionada