当我使用命令sudo -i
并输入密码,然后输入时ls
,我发现我只能在终端中看到桌面文件夹和包。
但当我回到正常模式时,所有文件夹都出现了。
我不知道是什么原因导致了这个问题...有人可以帮助我吗?
答案1
该sudo -i
命令会为您提供一个 root 身份的 shell,并且您将处于该root
用户的主目录中,而不是您自己的主目录中。由于root
通常不是您正常使用的用户,因此该用户的主目录中将仅存在极少数文件,尤其是任何新用户的骨架目录结构。
答案2
这是因为当您处于 root 模式时,您处于 root 的主目录中。尝试以下操作:
pwd
sudo -i
pwd
您将看到目录发生变化
答案3
这也困扰了我太多,所以我制作了这个脚本:
params="$@";sudo -i bash -c "cd \"`pwd`\";$params"
pwd
将在您需要的命令之前以您的普通用户身份运行
将其放在一个脚本文件中,该文件位于root:root rw-r--r--
由 root 拥有的文件夹完整层次结构中,就像/MyScripts
(创建它)一样更安全..
它的缺陷是如果你有一个参数中间有空格,比如ls -1 a "b c"
,就需要ls -1 a "b\ c"
,但这可以在你改进脚本时稍后解决:)