Ubuntu 上 cd ~ 位于哪里?

Ubuntu 上 cd ~ 位于哪里?

cd ~Ubuntu 上的绝对路径是什么?

试图找出它dir位于哪里?

例如:

/home

答案1

cd ~带您到您的主目录。默认情况下,主目录由存储在“passwd”数据库中的信息确定(通常/etc/passwd在基本桌面系统上,但中央数据库通常在企业设置中使用)。然而在一个外壳中,cd ~(和cd毫无争议)查看变量的值HOME,因此可以通过更改该变量来覆盖用户的主目录(就 shell 而言)。变量HOME被初始化为指向用户的主目录。如果HOME未设置,cd ~将恢复到默认主目录(并且cd会失败,至少在 bash 中)。

在登录之前确定给定用户的主目录是什么的规范方法是使用getent

getent passwd user

将显示user数据库中的条目,主目录是第六个字段:

getent passwd user | cut -d: -f6

答案2

通常,HOME环境变量会告诉您无论哪个用户登录,主目录设置为什么。即:

echo $HOME

但是,如果HOME未设置变量(来自info bash):

If 'HOME' is unset, the home
directory of the user executing the shell is substituted instead.

您可以在info bash手册中找到有关波形符扩展的更多信息。

答案3

一般在linux上都是这样/home/<your-username>/。在当前目录中输入可以看到当前目录的路径pwd

答案4

在几乎所有的 shell 中(例如*sh, *csh, *ksh),~是一个快捷方式当前用户主目录

许多 shell 使用HOME环境变量来“缓存”主目录的位置。的初始值HOME是从/etc/passwd文件中读取的。

正如@Time4Tea 所述,检查当前位置的最佳方法~是打印HOME变量。例如echo $HOME

请记住,该变量的值取决于用户,并且用户可以根据需要更改它。

最后但并非最不重要的一点是,shell 通常也支持~username快捷方式。例如,这~andcoz是我的(andcoz)家,而不是当前用户的家。

相关内容