3

我有一个 MSYS 安装,我正在编写一个 bash 脚本来设置一些文件。我想从 MSYS 中的 bash 脚本创建一个目录符号链接,但要做到这一点,我需要使用mklink /DWindows 命令。ln不适用于 NTFS 符号链接,它似乎只是复制文件夹,所以很遗憾我不能使用它。

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

mklink需要一个 Windows 样式的路径,如C:\opt. 但是,我只能提供/opt它不能使用的。有没有办法获得“真实”的路径/opt

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

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

4

2 回答 2

1

我以某种方式想通了,虽然它有点丑陋

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

在我的脚本中,我可能可以执行以下操作:

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

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

不过,我会欣赏一种不那么丑陋的方法

于 2015-10-28T11:25:18.143 回答
1

我将此称为“winpath”并将其粘贴在我的 /usr/bin 文件夹中以供 msys 使用。pwd似乎只支持揭示底层的根路径:

#!/bin/bash

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

pushd $dir > /dev/null
echo $(pwd -W)$add
popd > /dev/null
于 2017-11-06T14:44:11.527 回答