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)家,而不是当前用户的家。