Почему «sudo cd» не работает?

Почему «sudo cd» не работает?

Зачем печатать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

В зависимости от вашей ОС есть два варианта, когда это «не будет работать»:

  1. Если ваша ОС соответствует POSIX, то запуск sudo cdприведет квнешняя команда"cd" (обычно расположен в /usr/bin/cd) для выполнения в разветвленном процессе как пользователь root. Этот процесс успешно меняет каталоги. После завершения этого процесса вы вернетесь в свою обычную оболочку, которая все еще находится в каталоге, где она была запущена.

    So sudo cdзапускается без ошибок, но не изменяет текущий рабочий каталог вашей текущей оболочки.

    (ссылка:этот ответ)

  2. В противном случае запуск sudo cdприведет к следующему. Ваш компьютер будет просматривать ваш PATH, пытаясь найти исполняемый файл с именем "cd". Он не найдет его. (тольковстроенная команда оболочки«cd» существует, и это не исполняемый файл). Поэтому вы получаете сообщение об ошибке. (В Ubuntu я получаю сообщение об ошибке sudo: cd: command not found.)

    Поэтому sudo cdзапускается с ошибкой.

Связанный контент