在MSYS中获取已安装目录的真实Windows目录(或使用带有MSYS的ln)

时间:2015-10-28 11:15:35

标签: windows bash msys ln mklink

我有一个MSYS安装,我正在编写一个bash脚本来设置一些文件。我想从MSYS中的bash脚本创建一个目录符号链接,但要做到这一点,我需要使用$(document).ready(function() { this.go = function(){ var array = new Array(); array[0] = "Red"; array[1] = "Blue"; array[3] = "Green"; for (var i=0; i < array.length; i++){ document.write("<li>" + array[i] + "<br />"); } } } ,这是一个Windows命令。 mklink /D不能与NTFS符号链接一起使用,它似乎只复制文件夹,所以不幸的是我无法使用它。

我在MSYS中使用fstab将目录挂载为ln。真实目录是/opt(但它可以是任何东西)

C:\opt需要像mklink这样的Windows风格的路径。但是,我只能提供无法使用的C:\opt。有没有办法获得/opt的“真实”路径?

或者,如果有办法让/optln那样工作,那就太棒了。但我似乎无法找到一种方法(但在Cygwin中确实存在一种方式,但它似乎对我没有用)

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

2 个答案:

答案 0 :(得分:1)

我称之为“winpath”并将其粘贴在msys的/ usr / bin文件夹中。只有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

答案 1 :(得分:0)

我想出了某种方式,虽然它有点丑陋的黑客

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

在我的剧本中,我可以做类似的事情:

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

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

我很欣赏一种不那么难看的方法