我想从终端 cd 进入目录,但访问被拒绝,并且输入sudo cd (directory)
返回错误,提示 sudo 不支持 cd 命令。我可以使用sudo gnome-terminal
以 root 权限启动新的终端窗口,但我想要一个可以从同一个非 root 终端窗口使用的解决方案。有没有办法让 cd 命令与 sudo 兼容?
答案1
恐怕无法直接使用cd
with 。例如,可以调用可执行文件,但它是 shell 的内置命令。换句话说,有一个文件包含( ) 的可执行脚本,但没有 的文件,因此您无法使用with 。sudo
sudo
sudo ls
cd
ls
/bin/ls
cd
cd
sudo
答案2
嗯,你当然可以运行以下命令:
sudo sh -c "cd somedirectory"
从技术上讲,您将更改已启动子 shell 的当前目录。问题是子 shell 将立即退出,而您的主 shell 的目录不会发生更改。
主要问题是如果您无法cd
进入目录,则无法使用当前帐户在其中运行 shell。
一种解决方法是切换到具有此权限的用户帐户,root 当然是最简单的选择:
sudo sh -c "cd somedirectory; sh"