我刚刚安装了 MSYS2,为了让它使用我的 Windows 用户文件夹作为 $HOME,我将其放入 /etc/bash.bashrc 中:
HOME=$USERPROFILE
当我运行 cd 时,一切正常,只是当我在那里时,提示不再显示 ~ 作为当前路径。另一个问题是
cd ~
将我带到我的主目录,但是在 ~ 之后按下 tab 键不会使用我的主目录的内容展开它;相反,我得到了以 ~ 为前缀的我的计算机用户列表,并且尝试访问其中一个会尝试 cd 到 /home/(用户名)。
我怎样才能让 ~ 与不在 /home 中的主目录顺利配合?
答案1
正确的方法是将其放入 /etc/nssswitch.conf :
db_home: windows
看这里用于文档。
另外,为了使我的 homedir ls 输出更具可读性,我将其放在 ~/.bashrc 中:
alias ls="ls -h --color=auto --hide='ntuser.*' --hide='NTUSER.*'"
答案2
编辑/etc/fstab
以挂载C:\Users
为,/home
然后瞧!例如,在末尾附加以下内容fstab
:
C:/Users /home ntfs binary,noacl,auto 1 1
答案3
$用户资料指向用户的主文件夹视窗格式,但显然 MSYS 期望的是UNIX样式路径。我在另一篇文章中读到了这个建议,可能就在这里,所以我尝试了它。
出于某种原因,在 MSYS 的 bash 中 cd:ing 到 Windows 路径会将您带到该文件夹的正确挂载位置,但随后您将不再位于由$HOME,我相信这就是为什么建议有效,但仍然没有在提示中用路径替代~。
在我意识到这种情况之后(部分感谢 Astara),我想到了这个:
HOME=/c/Users/$USER
在 /etc/bash.bashrc 中,或者在任何适用的 bashrc 文件中,如果您不使用 MSYS2。
当然,这要求您的用户文件夹是 C:\Users,至少在 Windows 7 和 8 上是如此。