在我的根用户目录中,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 为您提供每个文件的索引号。根据此链接: