为什么“ sudo cd”不起作用?


Answers:


56

cd是内置的shell。sudo仅适用于可执行文件。您可以这样做,sudo sh -c 'cd dirname'但是一旦外壳退出,您将返回到您开始的目录。如果您说的是您要完成的任务,那么我可以帮助您找到一种方法。


2
但是那sudo pwd也行不通吗?(我一直想通sudo cd 的工作,但你只是没有看到后的结果sudo回报。但是,这只是胡乱猜测,也许没有cd,也不pwd是实际内置在猛砸在Mac上运行which cd 确实给我的结果。运行sudo cd /不会给我一个错误,但实际上不会导致工作目录更改。)
Arjan

2
@Arjan:pwd也是一个外部可执行文件,因此可以正常工作。请注意,在某些系统上,有一个cd可执行文件,但是它几乎没有用。顺便说一句,尝试使用type -a cd它比提供更多信息which
丹尼斯·威廉姆森,

1
真好!在Mac上type -a cd同时显示cd is a shell builtincd is /usr/bin/cd。对于pwd和也是如此echo。两者sudo pwdsudo echo "Hello world"给我一个结果。但是,type -a return只有屈服return is a shell builtin,并向sudo return 3我展示sudo: return: command not found。因此,我想问题是:OP是否收到错误消息,或者OP cd没有任何错误就看不到工作?(或者:OP使用的是什么操作系统。)
Arjan

sudo sh -c 'cd dirname'对我没有任何帮助
Peter Niederwieser

@Peter:看到我的回答部分以“ but ...”开头
丹尼斯·威廉姆森

72

而是尝试使用sudo -s启动根shell,然后简单地cd进入目录。
以root用户身份完成后,请按CtrlD或键入exit


正如Arjan在下面的评论中所暗示的那样,重要的是要注意,作为根用户,很容易损坏基本的系统组件。小心使用!


4
但是:小心,一旦一个人成为根...
Arjan

7

您可以简单su地成为root,然后成为cd所有想要的人……我知道答案已经被接受,但是如果不在sudoers列表中,那么这是唯一的选择。


另一方面,如果没有root密码,或者您不知道,则sudo是唯一的选择。
利亚姆
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.