Чому вводити sudo cd все , що не змінить каталог?
Чому вводити sudo cd все , що не змінить каталог?
Відповіді:
cd
є вбудованою оболонкою. sudo
працює лише з виконуваними файлами. Можна зробити, sudo sh -c 'cd dirname'
але як тільки оболонка вийде, ви повернетесь до каталогу, з якого ви почали. Якщо ви скажете, що це ви намагаєтеся досягти, то я можу допомогти вам знайти спосіб це зробити.
sudo pwd
теж не вийшло? (Я завжди вважав, що sudo cd
це працює, але ви просто не бачите результату після sudo
повернення. Але це була лише дика здогадка. Можливо, ні, cd
ні pwd
насправді вбудовані в Bash на Mac. Біг дійсно which cd
не дає мені результатів. Біг sudo cd /
не дає мені помилок, але насправді не призводить до змінення робочого каталогу.)
pwd
також зовнішній виконуваний файл, тому він працюватиме. Зауважте, що в деяких системах є cd
виконуваний файл, але він здебільшого марний. Спробуйте використовувати type -a cd
це набагато інформативніше, ніж which
, до речі.
type -a cd
показує cd is a shell builtin
і cd is /usr/bin/cd
на моєму Mac. І так само для pwd
і echo
. І як sudo pwd
і sudo echo "Hello world"
дійсно дають мені результат. Однак type -a return
тільки дає return is a shell builtin
, і sudo return 3
показує мені sudo: return: command not found
. Отже, я гадаю, що питання: чи отримує ОП повідомлення про помилку, чи ОП не бачить cd
роботу без помилок? (Або: яку ОС використовує ОП.)
sudo sh -c 'cd dirname'
нічого не робить для мене.
cd
. І він не може нічого не робити замість відмови, коли поточна оболонка не має cd
команди. Будь-яка оболонка, яка коли-небудь може бути використана людьми cd
, в тому числі /bin/sh
. Але програма, яка видно з ядра операційної системи, оболонка може бути набагато простішою, ніж ця, навіть лише пара рядків коду. Див. Який сенс cd
зовнішньої команди?
Замість цього спробуйте використовувати sudo -s
для запуску кореневу оболонку, а потім просто cd
у каталог.
Коли ви закінчите як root, натисніть CtrlDабо введіть exit
.
Як наголошує Ар'ян у своєму коментарі нижче, важливо зазначити, що як корінь, можна легко завдати шкоди важливим компонентам системи. Використовуйте обережно!