سؤال لماذا لا يعمل "sudo cd"؟


لماذا الكتابة سودو cd أيا كان لن تغير الدليل؟


74
2018-02-03 08:24


الأصل


نرى askubuntu.com/questions/291666/... - John


الأجوبة:


cd هو قذيفة مدمجة. sudo يعمل فقط مع الملفات التنفيذية. هل يمكن أن تفعل sudo sh -c 'cd dirname' ولكن بمجرد خروج shell ، يتم إرجاعك إلى الدليل الذي بدأت منه. إذا قلت ما الذي تحاول إنجازه ، يمكنني مساعدتك في العثور على طريقة للقيام بذلك.


49
2018-02-03 08:29



لكن بعد ذلك sudo pwd لن تعمل إما؟ (كنت دائما أحسب ذلك sudo cd  هل العمل ، لكنك لا ترى النتيجة بعد sudo عائدات. لكن هذا كان مجرد تخمين. ربما لا cd ولا pwd مدمجة فعليًا في Bash على جهاز Mac. جري which cd  هل بالفعل أعطني النتائج. جري sudo cd / لا يعطيني خطأ ، ولكن في الواقع لا يؤدي إلى تغيير دليل العمل.) - Arjan
Arjan: pwd هو أيضا قابل للتنفيذ الخارجي لذلك سوف يعمل. لاحظ أنه في بعض الأنظمة ، هناك cd قابل للتنفيذ ، لكنه في الغالب عديم الفائدة. جرب استخدام type -a cd إنها أكثر إفادة من ذلك بكثير which، على فكرة. - Dennis Williamson
لطيف! 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. لذا ، أعتقد أن السؤال هو: هل يحصل OP على رسالة خطأ ، أو لا يرى OP ذلك cd العمل دون أي خطأ؟ (أو: ما هو نظام التشغيل الذي يستخدمه البروتوكول الاختياري.) - Arjan
sudo sh -c 'cd dirname' لا يفعل أي شيء بالنسبة لي. - Peter Niederwieser
@ بيتر: انظر الجزء من إجابتي التي تبدأ "لكن ..." - Dennis Williamson


بدلا من محاولة استخدام sudo -s لبدء قذيفة الجذر ثم ببساطة cd في الدليل.
عندما تنتهي من العمل كجذر ، اضغط السيطرةد أو اكتب exit.


كما يلمح آرجان في تعليقه أدناه ، من المهم أن نلاحظ أنه كجذر ، يمكن للمرء بسهولة أن تلحق الضرر بمكونات النظام الأساسية. استخدم بحذر!


66
2018-02-03 08:56



ولكن: كن حذرا ، مرة واحدة هو الجذر ... - Arjan


يمكنك ببساطة su لتصبح الجذر ثم cd كل ما تريد ... وأنا أعلم تم بالفعل قبول إجابة ، ولكن إذا لم يكن أحد في قائمة sudoers فإن هذا هو الخيار الوحيد.


7
2018-04-24 08:57



من ناحية أخرى ، إذا لم يكن هناك كلمة مرور جذر ، أو لم تكن تعرفها ، فإن sudo هو الخيار الوحيد. - Liam