sudo позволяет выполнять команды с повышенными привилегиями. Больше подробностей об использовании sudo смотрите в статье «Что такое sudo».
Но с некоторыми командами невозможно использовать sudo, один из таких примеров уже рассмотрен в статье «Как использовать echo вместе с sudo».
Аналогично и с cd, если попытаться выполнить что-то вроде такого:
sudo cd /root
То возникнет ошибка:
sudo: cd: command not found
Причина ошибки в том, что назначение sudo в том, чтобы запускать программы от другого пользователя (обычно как root). Но cd не является программой, это встроенная функция Bash. В этом можно убедиться если выполнить:
type cd
Вывод:
cd — это встроенная команда bash
Ещё одна проверка:
which cd
В этом сообщении сказано, что cd не найдена среди исполнимых файлов по указанным папкам:
which: no cd in (/usr/local/bin:/usr/local/sbin:/usr/bin:/opt/cuda/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl)
Как выполнить sudo вместе cd
В качестве работающего способа выполнения sudo cd используйте следующую конструкцию:
sudo sh -c "cd ДИРЕКТОРИЯ; ДРУГАЯ_КОМАНДА"
Обратите внимание, что будет сделан переход в указанную папку, но вы сразу покинете её и вернётесь в свою текущую рабочую директорию после окончания выполнения команды. Поэтому если вам нужно выполнить действия внутри указанной ДИРЕКТОРИИ, то перечислите эти команды внутри кавычек через точку с запятой.
Связанные статьи:
- Как использовать echo вместе с sudo (100%)
- Почему не запускается скрипт, ошибка «bash: ./....sh: Отказано в доступе» (РЕШЕНО) (74.1%)
- Мы скоро начнём (50%)
- Как установить Kingsoft Office на Linux (50%)
- Как установить .deb файл с зависимостями (50%)
- Лучшие дистрибутивы Linux на основе RedHat (RANDOM - 50%)