在 Ubuntu docker 容器内部,cd /home
和cd ~
都指向不同的位置。
cd ~
将转到/root
文件夹,而 cd /home 将转到 /home。但一般来说 ~ 与 Ubuntu 中的主目录同义。但为什么在 Ubuntu docker 容器中却不同呢?
答案1
cd ~
更改实际用户的主目录。主目录的位置在 passwd-map(或 -file ( /etc/passwd
))中配置。
如果您以 root 身份工作,cd ~
则会将您带到用户的主目录root
。/root
大多数情况下都是这样。
如果您正在工作user1
并且用户主目录定义为/home/user1
,/etc/passwd/
则cd ~
您将进入/home/user1
。
~[user]
只是一些 shell 快捷方式(在 bash 和其他一些 shell 中,不是全部)。如果省略用户,系统内部将替换实际用户。
因此,正如root
您可以做的cd ~user1
那样,这会将目录更改为/home/user1
.
答案2
您是root,root 的家位于/root。您可以在/etc/passwd 中查看它。在本机安装中您会得到相同的行为。