Answers:
cd
不是外部命令,它只是内置的shell,因此sudo
无法执行。之所以cd
只能作为内置的shell存在,是因为一个进程无法影响另一个进程的当前目录;因此,更改当前目录并立即退出的程序是没有用的。(几乎没有用:cd
程序将返回指示其是否成功的状态。)
如果要更改目录,然后以其他用户身份运行命令,请运行执行所有操作的Shell。
sudo -u SOMEUSER sh -c 'cd /path/to/directory && dosomething'
我倾向于使用:sudo su - USERNAME
然后以该用户身份执行您需要做的事情。要退出,只需键入exit
USERNAME
然后执行命令与直接以as身份运行命令不同USERNAME
cd
。之后立即退出。OP可能想要sudo -i
。