`
zealotds
  • 浏览: 119281 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Symbol Link in MSYS on WIN7

阅读更多
As we know the symbol link command 'ln' in MinGW is fake that it creates copy instead of real link in *nix file system.

A good news is on Win7 its new NTFS support symbol link feature! With "mklink" command in Windows Command Prompt, we could easily do so like below:

mklink [/d] link target


So it won't be hard to implement a "mklink" for MinGW like below:

#!/bin/bash

#####################################################
#
# (c) Copyright 2012 Clark. All Rights Reserved.
# 2012-08-29
#
#####################################################

Usage() {
cat<<EOF
mklink [-d] target link.
    -d      create a directory symbolic link
    target  path (relative or absolute) that link refers to
    link    the new symbolic link name
EOF
exit 1
}

if [[ -z "$2" ]]; then
    Usage
elif [[ "$3" != "" && "$1" != "-d"  ]]; then
    Usage
fi

if [[ "$3" != "" ]]; then
    ISDIR="/D"
    TARGET="$2"
    LINK="$3"
else
    TARGET="$1"
    LINK="$2"
fi

# if starts with '/', a absolute path
if [[ "${TARGET:0:1}" == "/" ]]; then
    ROUTE=$(echo "$TARGET" | sed 's,^/\([c-z]\)/,\1:/,')
    if [[ "$ROUTE" == "$TARGET" ]]; then
        ROUTE=$(echo "$3" | sed 's,^/,'$MSYS',')
    fi
else
    ROUTE="$TARGET"
fi

ROUTE=$(echo "$ROUTE" | sed 's,/,\\,g')

CMD=$(echo mklink $ISDIR $LINK \"$ROUTE\")
#echo $CMD
cmd /c "$CMD"


Please be noted that according to this article if you want to remove a directory symbol link in Win7 you should only use 'rmdir' (both available in CMD and MSYS). The 'del' command in CMD will delete all your files in the source directory!!!

A typical use case

You have created your awesome .vimrc and .vim in MSYS and you want to re-use them in gvim:
cd "$USERPROFILE"
# below 2 links makes your Windows gvim load resource directly from 
# you MSYS configurations.
mklink /c/MinGW/msys/1.0/home/user/.vimrc _vimrc
mklink /c/MinGW/msys/1.0/home/user/.vim vimfiles.
# and if you want to invoke gvim from MSYS
cd ~
mklink .vim vimfiles
# a link for _vimrc is not necessary
alias gvim="/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe"
# to start gvim in background
gvim <FILENAME> &
分享到:
评论

相关推荐

    msys_WIN64位

    msys的WIN64位软件,解压后可直接使用,建议与MinGW放在同一路径。

    msys 解决win10系统61 2503 sh.exe报错

    msys 解决win10系统下MTK6261 MT2503 编译报错 sh.exe.

    msys win10 64位

    解决win10 64位MTK编译6261时出现sh.exe错误。解压替换tools\msys。

    Qt 5.4.2 patch for MinGW in MSYS2

    在Qt 5.4.2官方原版源代码基础上针对MSYS2环境的MinGW编译器修改: 1.动态链接版本Qt可编译源码自带的ANGLE、webkit; 2.静态链接版本Qt可编译源码自带的ANGLE,不保证完全编译webkit; 3.修正自主编译的Qt链接的...

    MSYS-1.0.10 MSYS-1.0.10

    MSYS-1.0.10MSYS-1.0.10MSYS-1.0.10MSYS-1.0.10MSYS-1.0.10MSYS-1.0.10MSYS-1.0.10

    msys msys msys

    msys msys msys 非要写多余20个字符,太麻烦了

    qt-4.8.4-mingw-gcc-4.7.2-msys-win32

    说明:需要先从sourceforge上下载msys和mingw的最新版,即安装MSYS 7.2, MinGW with Gcc 4.7.2(解压在msys下的mingw目录),然后解压本压缩包至msys的根目录(会生成opt目录),启动msys.bat,运行qtcreator进行...

    mingw-gcc-4.7.2-msys-win32

    mingw和msys的最新版,gcc 4.7.2 这个版本的mingw相较以前的版本体积小

    QtCreator 3.5.0 patch for MinGW in MSYS2

    修正在MSYS2下使用MinGW编译器编译时的错误,并提供自动化编译安装脚本"makeinstall"。 注意: 1.由于MSYS2并未提供clang.dll的lib文件,需要自己手动从clang.dll生成一个并命名为libclang.dll.a,生成方法请参考...

    Qt5.5.0 patch for MinGW in MSYS2

    在Qt 5.5.0官方原版源代码基础上针对MSYS2环境的MinGW编译器修改: 1.动态链接版本Qt可编译源码自带的ANGLE、webkit; 2.静态链接版本Qt可编译源码自带的ANGLE,不保证完全编译webkit; 3.修正自主编译的Qt链接的...

    win+msys2编译ijkplayer修改文件

    在windows下通过win+msys2编译ijkplayer,资源内容是里面我为了顺利编译修改过的文件

    MSYS 1.0.10 && MSYS 1.0.11

    含有MSYS 1.0.10和MSYS 1.0.11两个版本。 两个都正确在Win32上安装使用过,没有问题。

    Win32下MinGW与MSYS安装介绍

    主要介绍GTK+库的Win32下安装,MSYS的安装 --------------已经过期,请在我的资源中看另一个下载

    QtCreator 3.4.1 patch for MinGW in MSYS2

    基于QtCreator 3.4.1版官方源码修改,修正在MSYS2下使用MinGW编译器时的错误,注意由于MSYS2并未提供clang.dll的lib文件,需要自己手动从clang.dll生成一个并命名为libclang.dll.a,生成方法请参考网上教程,用到的...

    msys-全套-06

    最后一个分卷,到这里就结束了,所有的文件都已经在里面了,大概说一下安装过程,首先,安装msys,msys-dtk,msys-core,并把M4包解压缩覆盖到msys的bin目录下;然后,看你个人喜欢,independened文件夹里面的包是不...

    MSYS 版本:1.0.10

    MSYS 版本:1.0.10MSYS 版本:1.0.10 MSYS 版本:1.0.10MSYS 版本:1.0.10MSYS 版本:1.0.10MSYS 版本:1.0.10

    QtCreator 3.4.2 patch for MinGW in MSYS2

    基于QtCreator 3.4.2版官方源码修改,修正在MSYS2下使用MinGW编译器编译时的错误,并提供自动化编译安装脚本"makeinstall"。 注意: 由于MSYS2并未提供clang.dll的lib文件,需要自己手动从clang.dll生成一个并命名为...

    MSYS_ MinGW_7z_convert

    2503源码11CW1352SP3_CORETEK03D_11C_V2_GPRS_MMI中需要的第三方工具 :MSYS MinGW 7z convert

    64位Windows7下MinGW64-MSYS环境搭建

    64位Windows7下搭配MinGW64-MSYS环境

    msys64 for windows

    msys64 for windows

Global site tag (gtag.js) - Google Analytics