获取 MSYS 中挂载目录的真实 windows 目录(或使用 ln 与 MSYS)

Get real windows directory of mounted directory in MSYS (or use ln with MSYS)

我安装了 MSYS,我正在编写 bash 脚本来设置一些文件。我想从 MSYS 中的 bash 脚本创建一个目录符号 link,但为此我需要使用 mklink /D,这是一个 windows 命令。 ln 不适用于 NTFS 符号 links,它似乎只是复制文件夹,所以不幸的是我不能使用它。

我使用 fstab 在 MSYS 中安装了一个目录为 /opt。真实目录是 C:\opt(但它可以是任何东西)

mklink 期望像 C:\opt 这样的 Windows 风格的路径。但是,我只能提供它无法使用的 /opt 。有没有办法得到/opt的"real"路径?

或者,如果有办法让 lnmklink /D 那样工作,那就太好了。但我似乎找不到办法(Cygwin 中确实存在一种方法,但它似乎对我不起作用)

注意:本人没有cygwin,也不想安装外部软件(包括cygwin)

我想通了,虽然它有点丑陋

如果我想找出当前目录的真实 Windows 路径,我可以使用 pwd -W,这显然是 MSYS 独有的功能

在我的脚本中,我可能会做类似的事情:

realpath=`cd /opt && pwd -W`

获取/opt的真实路径。我测试了它,它似乎有效。

不过我希望有一个不那么丑陋的方法

我将其命名为 "winpath" 并将其粘贴在我的 /usr/bin 文件夹中用于 msys。只有 pwd 似乎支持揭示底层的根路径:

#!/bin/bash

if [[ -f "" ]]; then
    dir=$(dirname "")
    add=/$(basename "")
else
    dir=""
    add=""
fi

pushd $dir > /dev/null
echo $(pwd -W)$add
popd > /dev/null