如何更改用户并保留当前位置?

如何更改用户并保留当前位置?

我想知道如何在一个命令中切换到另一个用户(就我而言通常是root并且仍然停留在同一个位置改变之前我在哪里。

我通常这样做,不幸的是采取了很多步骤:

user1@m:~/loc1/loc2$ pwd
/home/user1/loc1/loc2

user1@m:~/loc1/loc2$ su -
Password: 

root@m:~# cd /home/user1/loc1/loc2

root@m:/home/user1/loc1/loc2# 

我正在寻找类似的东西:

user1@m:~/loc1/loc2$ su - && ...

或类似的,这会给我这个结果:

root@m:/home/user1/loc1/loc2# 

答案1

根据手册,--l都是相同的选项。

-l模拟完整登录。除 HOME、SHELL、PATH、TERM 和 USER 之外的环境均被丢弃。 HOME和SHELL修改如上。 USER 设置为目标登录名。 PATH 设置为“/bin:/usr/bin”。 TERM 是从您当前的环境导入的。调用的 shell 是目标登录名的,su 会将目录更改为目标登录名的主目录。

-(无字母)与 相同-l

如果不指定-l-,则不会更改目录。

答案2

最简单的解决方案:

user1@m:~/loc1/loc2$ su root

甚至(感谢@Christopher):

user1@m:~/loc1/loc2$ su

相关内容