Зачем печататьsudo cd что угодноне поменяете каталог?
решение1
cd
встроенная оболочка. sudo
работает только с исполняемыми файлами. Вы можете это сделать sudo sh -c 'cd dirname'
, но как только оболочка завершит работу, вы вернетесь в каталог, с которого начали. Если вы скажете, чего именно вы пытаетесь достичь, то я могу помочь вам найти способ сделать это.
решение2
Вместо этого попробуйте использовать sudo -s
для запуска оболочки root, а затем просто cd
войти в каталог.
Когда вы закончите как root, нажмите CtrlDили введите exit
.
Как намекает Арджан в своем комментарии ниже, важно отметить, что, будучи пользователем root, можно легко повредить важные компоненты системы.Использовать с осторожностью!
решение3
Вы можете просто su
стать пользователем root и делать cd
все, что захотите... Я знаю, что ответ уже принят, но если вас нет в списке sudoers, то это единственный вариант.
решение4
В зависимости от вашей ОС есть два варианта, когда это «не будет работать»:
Если ваша ОС соответствует POSIX, то запуск
sudo cd
приведет квнешняя команда"cd" (обычно расположен в/usr/bin/cd
) для выполнения в разветвленном процессе как пользователь root. Этот процесс успешно меняет каталоги. После завершения этого процесса вы вернетесь в свою обычную оболочку, которая все еще находится в каталоге, где она была запущена.So
sudo cd
запускается без ошибок, но не изменяет текущий рабочий каталог вашей текущей оболочки.(ссылка:этот ответ)
В противном случае запуск
sudo cd
приведет к следующему. Ваш компьютер будет просматривать ваш PATH, пытаясь найти исполняемый файл с именем "cd". Он не найдет его. (тольковстроенная команда оболочки«cd» существует, и это не исполняемый файл). Поэтому вы получаете сообщение об ошибке. (В Ubuntu я получаю сообщение об ошибкеsudo: cd: command not found
.)Поэтому
sudo cd
запускается с ошибкой.