【问题标题】:/ directory for git bash on windows/ Windows 上 git bash 的目录
【发布时间】:2019-01-24 01:20:35
【问题描述】:

所以我最近从 macOS 终端转移到 Windows 的 git bash,我对 git bash 显示为我的根目录或特别是 / 的目录感到困惑。

我的所有数据都存储在我的/c/ 目录/c/Users/myUSER 中。这对我来说很好。

现在,当我 $ cd / 和随后的 $ ls 时,我看到了我在 Mac 上习惯使用的所有以下文件夹,但 /c/ 不可见!

myUSER /
$ ls
bin/  etc/           LICENSE.txt  ReleaseNotes.html  unins000.exe*
cmd/  git-bash.exe*  mingw64/     tmp/               unins000.msg
dev/  git-cmd.exe*   proc/        unins000.dat       usr/

现在我很惊讶我能做到以下几点:

myUSER /
$ cd c
myUSER c
$

有人可以解释一下这种行为吗?

【问题讨论】:

  • 很明显,可用的 DOS 驱动器 a-z 在根目录中虚拟可用。此外,这些名称是保留的。例如,如果我们尝试使用未分配 DOS 驱动器的字母创建目录,则会失败并显示ENOENT,找不到文件。目前尚不清楚为什么它们在列出根目录时不包括可用驱动器。
  • 它们在mount 命令的输出中或通过cat /proc/mounts 列出。

标签: windows bash directory git-bash


【解决方案1】:

这最初来自MSYS2,如git-for-windows/git issue 111中所述:

作为the filesystem package 一部分的安装后脚本不包含在发布版本中。其中三个很有用:

  • 01-devices.post 在 /dev 中设置各种文件夹和符号链接,特别是包括 /dev/fd,这是 Bash 进程替换工作所必需的。
  • 03-mtab.post 创建/etc/mtab 作为/proc/mounts 的符号链接。

(这是列出/可用驱动器的位置)

  • 06-windows-files.post 通过从C:\Windows\system32\drivers\etc 复制它们来在/etc 中创建主机、协议、服务和网络文件。

附带说明,它创建的符号链接不是真正的符号链接,而是Cygwin's fancy pseudo-symlinks,因此创建它们不需要管理员权限。

【讨论】:

  • 澄清一下,我的 /etc、/dev 和 /proc 当前已被填充,所以也许上面的脚本已经执行了。我的 git bash 是否需要任何进一步的配置才能正常运行?
  • @macavich 通常,否:我的回答是指出为什么要安装驱动器(使 /proc/mounts 可用的一系列脚本的一部分)
猜你喜欢
  • 2014-04-15
  • 1970-01-01
  • 2017-12-21
  • 2019-03-25
  • 2013-08-19
  • 1970-01-01
  • 2017-01-07
  • 2015-11-20
  • 2021-04-05
相关资源
最近更新 更多