ubuntu docker 容器中 $ cd /home 和 $ cd ~ 有什么区别

ubuntu docker 容器中 $ cd /home 和 $ cd ~ 有什么区别

在 Ubuntu docker 容器内部,cd /homecd ~都指向不同的位置。

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 中查看它。在本机安装中您会得到相同的行为。

相关内容