#1 楼
cd
是内置的shell。 sudo
仅适用于可执行文件。您可以执行sudo sh -c 'cd dirname'
,但是一旦退出shell,您将返回到您从其开始的目录。如果您说自己想完成的任务,那么我可以帮助您找到一种方法。评论
但是,那么sudo pwd也不起作用吗? (我一直认为sudo cd确实可以工作,但是在sudo返回后您只是看不到结果。但这只是一个疯狂的猜测。也许cd和pwd实际上都不是Mac上的Bash内置的。运行哪个cd确实确实给了我结果。运行sudo cd /不会给我一个错误,但实际上不会导致工作目录更改。)
– Arjan
2011年2月3日在9:00
@Arjan:pwd也是一个外部可执行文件,因此可以正常工作。请注意,在某些系统上,有一个cd可执行文件,但是它几乎没有用。尝试使用-a cd类型,顺便说一句,它比提供的信息更多。
–丹尼斯·威廉姆森
2011年2月3日,9:06
真好!类型-a cd显示cd是Mac上的内置shell,而cd是/ usr / bin / cd。对于pwd和echo同样如此。 sudo pwd和sudo echo“ Hello world”确实给了我一个结果。但是,类型-a return仅产生return是一个内置的shell,而sudo return 3向我显示了sudo:return:命令未找到。因此,我想问题是:OP是否收到错误消息,或者OP没有看到CD且没有任何错误? (或者:OP使用什么操作系统。)
– Arjan
2011-2-3在9:12
sudo sh -c'cd dirname'对我没有任何帮助。
– Peter Niederwieser
2011年8月9日14:43
@Arjan我找到了解释:这有点像深度兼容性破解。它不执行其功能,但是它具有真正的cd的副作用。而且,当当前的外壳没有cd命令时,它什么也不会失败。人类可能使用过的任何外壳都有cd,包括/ bin / sh。但是,从操作系统内核看,一个程序比这要简单得多,甚至只有几行代码。请参阅cd external命令的作用是什么?
– Volker Siegel
19-10-21在10:35
#2 楼
而是尝试使用sudo -s
启动根shell,然后简单地将cd
进入目录。在下面的评论中,需要特别注意的是,作为根用户,很容易损坏基本的系统组件。小心使用!评论
但是:要小心,一旦扎根...
– Arjan
2011年2月3日,9:14
#3 楼
您可以简单地将su
设置为root,然后随意设置cd
...我知道答案已经被接受,但是如果一个不在sudoers列表中,那么这是唯一的选择。评论
另一方面,如果没有root密码,或者您不知道,则sudo是唯一的选择。
–利亚姆
2015年10月20日在18:37
如果您在sudoers组中,则sudo su应该可以工作。
–周克敏
1月10日6:06
#4 楼
取决于您的操作系统,它有两种“不起作用”的方法: ”(通常位于sudo cd
)以root用户身份在派生进程中执行。该过程成功更改目录。完成该过程后,您将返回到常规外壳程序,该外壳程序仍位于该程序所在的目录中。 shell。(参考:此答案)
否则,运行
/usr/bin/cd
将导致发生以下情况。您的计算机将浏览您的PATH,尝试查找名为“ cd”的可执行文件。它不会找到一个。 (仅存在shell内置命令“ cd”,而不是可执行文件)。因此,您会得到一个错误。 (在Ubuntu上,我收到错误消息sudo cd
。)sudo cd
运行时出错。#5 楼
您通常可以在输入“ sudo sh”和cd到任何地方时切换到root用户#6 楼
尝试导航到Kali Linux中的根目录时遇到了相同的问题,并且:sudo su
允许我执行:
cd /
评论
参见askubuntu.com/questions/291666/…