当我以 身份登录时username
,为什么
sudo ls ~
向我展示而不是的内容?我认为以 root 身份执行命令,在这种情况下将表示./home/username
/root
sudo
~
/root
更多解释:
此外,如果我运行su
命令,然后运行ls ~
,我会显示/root
. 所以我认为这样做相当于sudo ls ~
.
再举一个例子,一些带有--user
标志的命令在运行时会将用户解释为 root sudo
。例如,将安装到 内的目录 ,而 将安装到 内的目录。请注意,不建议运行最后一个命令,我只是用它来显示我正在描述的功能。pip install --user packagename
/home/username
sudo pip install --user packagename
/root
外壳
~
在运行前扩展sudo
;您可以通过以下方式看到这一点set -x
:这表明实际运行的命令已经扩展了主目录,使用扩展时的当前用户。
要查看目标用户的主目录,您必须推迟波浪号扩展: