Por que digitar sudo cd, o que quer que não mude o diretório?
Por que digitar sudo cd, o que quer que não mude o diretório?
Respostas:
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 em que iniciou. Se você diz o que está tentando realizar, posso ajudá-lo a encontrar uma maneira de fazer isso.
sudo pwdtambém não funcionaria? (Eu sempre imaginei que sudo cd faz o trabalho, mas você simplesmente não estamos vendo o resultado depois sudoretorna. Mas isso foi apenas um palpite. Talvez nem cdnem pwdsão realmente incorporado em Bash em um Mac. Correr which cd faz de fato me dar resultados. Correndo sudo cd /não me dá um erro, mas na verdade não resulta em um diretório de trabalho alterado).
pwdtambém é um executável externo, por isso funcionará. Observe que em alguns sistemas, existe um cdexecutável, mas é principalmente inútil. Tente usá- type -a cdlo muito mais informativo do que which, a propósito.
type -a cdmostra ambos cd is a shell builtine cd is /usr/bin/cdno meu Mac. E da mesma forma para pwde echo. E ambos sudo pwde sudo echo "Hello world"me dão um resultado. No entanto, type -a returnapenas rende return is a shell builtine sudo return 3me mostra sudo: return: command not found. Então, acho que a pergunta é: o OP recebe uma mensagem de erro ou o OP não vê o cdtrabalho sem nenhum erro? (Ou: o que OS é o OP usando.)
sudo sh -c 'cd dirname'não faz nada por mim.
cdtem. E não pode fazer nada em vez de falhar quando o shell atual não possui um cdcomando. Qualquer concha que possa ser usada por humanos tem cd, inclusive /bin/sh. Mas um programa que é, visto no kernel do sistema operacional, um shell pode ser muito mais simples que isso, mesmo apenas algumas linhas de código. Consulte Qual é o objetivo do cdcomando externo?
Em vez disso, tente usar sudo -spara iniciar um shell raiz e depois simplesmente cdpara o diretório
Quando terminar como root, pressione CtrlDou digite exit.
Como Arjan sugere em seu comentário abaixo, é importante notar que, como root, pode-se facilmente danificar componentes essenciais do sistema. Use com cuidado!