【问题标题】:Change path of ~ in bash on Windows [duplicate]在 Windows 上的 bash 中更改 ~ 的路径 [重复]
【发布时间】:2019-07-27 08:50:58
【问题描述】:

我刚刚在运行 Windows 10 的机器上安装了bash.exe,它运行良好,但我似乎无法让~ 指向我想要它的位置(如cd ~)。它会自动指向C:

如何将其更改为引用我所有常用文件所在的 C:\Users\name

我尝试将$HOME 设置为我想要的地址(使用export HOME='C:\Users\name'),但没有成功。 echo ~ 仍然返回 C:

有什么想法吗?

安装说明 -- 我只是从SourceForge 下载了bash.exe 和其他类似bash 的命令,并将整个下载的目录添加到我的路径中。

【问题讨论】:

  • 在 PowerShell 中,~ 定义在 PSProvider:Get-PSProvider -PSProvider FileSystem | % Home 中。但是在 bash 下,我不确定该系统如何解释它。
  • 在 PowerShell 中,~ 将我带到正确的位置(即C:\Users\name),但这似乎并不能转化为 bash。
  • 我想我们需要更多关于您如何安装 bash.exe 的详细信息。这是Windows Subsystem for Linux 还是别的什么?
  • 刚刚编辑以包含此内容...如果信息不足,请告知。
  • 这个故事以前有人问过。请查看这篇文章中建议的解决方案:stackoverflow.com/a/46898841/2166900

标签: windows bash


【解决方案1】:

令人惊讶的是,在win-bash中规则~扩展的HOME变量不是这个名称的bash变量,而是Windows环境变量 .因此,只有在 bash 启动之前设置 HOME 时,我们才能更改 ~ 的位置,例如。 G。在cmdset HOME=…

【讨论】:

  • PowerShell 语法:$Env:HOME = '...'
【解决方案2】:

哦,你的例子在 bash 中不起作用,如果你想以这种方式添加文件夹,你需要 cut \:

export HOME='C:\\Users\\name'

但是,如果您在 linux 环境中,请尝试此操作,因为 c: 默认安装在 /mnt 中:

export HOME='/mnt/c/users/name'

如果你只是从 powershell 运行它,你也可以用你的例子试试这个:

创建一个 .bashrc 文件:

 C:\Users\USERNAME\.bashrc 

现在将以下字符串添加到该文件中:

HOME=$PATH:/c/users/name 

【讨论】:

  • 谢谢。但这些都不起作用。
  • 试试这个:HOME=/c/Users/$USERNAME
  • 对不起,这些都不起作用。
  • 这对我在 Powershell 或 bash 中都不起作用。在 powershell 中,它表明我的家庭环境已更改(即 echo $HOME 返回正确更改的目录),但 cd ~ 仍会转到原始位置。我应该注意,在 powershell 中 cd ~ 将目录更改为 C:\Users\username,但在 bash 中它将目录更改为 C:
  • 这也行不通。我有一种感觉 bash 在某种程度上误解了主目录的位置。请注意,我没有为 Linux 运行 Windows 子系统,而是从 sourceforge 安装了 bash.exe 并将其添加到我的路径中(请参阅对原始问题的编辑中的安装说明)。 Bash 也找不到我的 .bashrc 文件,所以我必须明确地提供 -rcfile 标志和我的 .bashrc 文件的路径。我猜它在C: 中寻找它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-24
  • 1970-01-01
  • 2011-08-30
  • 2013-08-16
  • 2020-07-21
  • 2020-03-27
相关资源
最近更新 更多