我刚刚安装了 MSYS2,为了让它使用我的 Windows 用户文件夹作为 $HOME,我把它放在 /etc/bash.bashrc 中:
HOME=$USERPROFILE
Run Code Online (Sandbox Code Playgroud)
当我只运行 cd 时,这工作正常,除了当我在那里时提示不再显示 ~ 作为当前路径。另一个问题是
cd ~
Run Code Online (Sandbox Code Playgroud)
带我到我的主目录,但在 ~ 之后按 Tab 不会用我的主目录的内容展开它;相反,我得到了一个以 ~ 为前缀的计算机用户列表,并尝试访问其中之一使其尝试 cd 到 /home/(username)。
我怎样才能让 ~ 与不在 /home 中的主目录一起玩得很好?
正确的方法是将其放入 /etc/nssswitch.conf :
db_home: windows
Run Code Online (Sandbox Code Playgroud)
有关文档,请参见此处。
同样为了使我的 homedir ls 输出更具可读性,我把它放在 ~/.bashrc 中:
alias ls="ls -h --color=auto --hide='ntuser.*' --hide='NTUSER.*'"
Run Code Online (Sandbox Code Playgroud)
$USERPROFILE指向Windows格式的用户主文件夹,但显然 MSYS 需要UNIX样式的路径。我在另一篇文章中读过该建议,可能在这里,这就是我尝试的原因。
出于某种原因,在 MSYS 的 bash 中 cd:ing 到 Windows 路径会将您带到该文件夹的正确安装位置,但随后您将不再位于$HOME指定的路径中,我相信这就是该建议有效的原因,但仍然不会在提示中替换 ~ 的路径。
在我意识到这种情况之后(部分感谢阿斯塔拉),我想出了这个:
HOME=/c/Users/$USER
Run Code Online (Sandbox Code Playgroud)
在 /etc/bash.bashrc 中,或任何适用的 bashrc 文件中,以防您不使用 MSYS2。
当然,这要求您的用户文件夹位于 C:\Users,至少在 Windows 7 和 8 上是这样。
归档时间: |
|
查看次数: |
9184 次 |
最近记录: |