Чому вводити 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.
Як наголошує Ар'ян у своєму коментарі нижче, важливо зазначити, що як корінь, можна легко завдати шкоди важливим компонентам системи. Використовуйте обережно!