ls 和 cd 与 sudo 一起使用时没有输出

ls 和 cd 与 sudo 一起使用时没有输出

在我的根用户目录中,ls输出以下内容:

Desktop    Downloads         Music     Public     Videos
Documents  examples.desktop  Pictures  Templates

但是,sudo -i ls没有提供任何输出。

cd Downloads一切正常。sudo -i cd Downloads输出“没有这样的文件或目录。”发生了什么?不应该sudo -i [command]像任何命令本身一样工作吗?

答案1

-i选项使 sudo 在目标用户(在本例中为 root)登录 shell 指定的 shell 中运行命令,例如,您可以通过运行来确认

$ sudo -i sh -c 'echo $HOME'
/root

Downloads所以它告诉你 的主目录中没有目录root。如果你想以 root 身份但在调用用户的环境中运行命令,请使用sudo -s

答案2

我刚刚尝试了你的命令,但没有成功,但是如果你执行 sudo ls -i,你会得到输出。

sudo cd 不能与 -i 一起使用。

您希望从 -i 获得什么输出,尤其是从 cd 获得什么输出?cd 只是用于更改目录,并没有真正的特殊功能,ls 却有。

从我在这里读到的内容来看,当您想以另一个用户身份执行 sudo 时,在 sudo 中添加 -i 即可。ls -i 为您提供每个文件的索引号。根据此链接:

http://linuxcommand.org/man_pages/ls1.html

相关内容