`
zealotds
  • 浏览: 122297 次
  • 性别: 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系统61 2503 sh.exe报错"指的是在使用MSYS在Win10环境下编译MTK6261和MT2503相关软件或固件时,由于系统或环境配置问题导致`sh.exe`——一个Unix/Linux下的Shell程序,在Windows上运行出错。...

    支持win7-32位的msys

    解压后放到c盘,双击msys2.exe,就可以运行,由于没有走安装逻辑,双击后会跑一段时间的命令行,然后执行pacman -S gdb就能安装gdbgdb attach 进程ID,就能调试mingw编译的程序,mingw编译的参数要加CFLAGS="-g -O0

    msys win10 64位

    标题"msys win10 64位"指的是这个压缩包特别针对Windows 10 64位操作系统,提供了一个适用于该系统的MSYS环境。通常,MSYS可能会在某些特定情况下遇到问题,例如在编译过程中遇到"sh.exe"错误。这通常是由于路径设置...

    mingw-gcc-4.7.2-msys-win32

    MingW-GCC-4.7.2-MSYS-Win32是一个专为Windows系统设计的开源工具集,它使得开发者能够在Windows环境下编译和构建GNU工具链的程序。这个版本特别强调的是其轻量级特性,相较于之前的版本,它的体积更小,但功能并未...

    msys msys msys

    **MSYS:Windows下的开源命令行工具集合** MSYS,全称 Minimal SYStem,是一个在Windows操作系统上运行的轻量级Unix-like环境。它主要为开发者提供了一个能够执行POSIX兼容命令行工具的平台,使得在Windows系统上...

    MSYS.zip MSYS.zip

    标题中的"MSYS.zip"指的是一个包含MSYS(Minimal SYStem)的压缩文件,它是一个轻量级的UNIX-like环境,专为Windows系统设计,主要用于支持GNU工具集的运行和编译。这个环境提供了类似bash shell的命令行界面,使得...

    msys2-x86_64最新安装包.7z

    这个“msys2-x86_64最新安装包.7z”文件是MSYS2的64位版本的更新安装程序,压缩格式为7z,里面包含的文件名为"msys2-x86_64-20190524 (1).exe",这是MSYS2的安装执行文件,发布日期为2019年5月24日。 MSYS2的核心...

    Windows平台下Vlc的编译(MSYS+MINGW)

    MSYS 是 Minimal GNU(POSIX)system on Windows 的缩写,它是一个小型的 GNU 环境,包括基本的 bash、make 等等。MSYS 是 Windows 下最优秀的 GNU 环境。 MinGW,即 Minimalist GNU for Windows,是一些头文件和...

    windows搭建gcc开发环境(msys2)

    ### Windows下使用MSYS2搭建GCC开发环境 #### 前言 对于Windows开发者来说,能够在本地环境中模拟出接近Linux的开发体验是非常重要的。MSYS2不仅提供了这种体验,而且还集成了诸如Mingw这样的工具,让Windows用户...

    Win32下MinGW与MSYS安装介绍

    ### Win32下MinGW与MSYS安装及GTK+配置详解 #### 一、MSYS与MinGW的基础概念 - **MinGW (Minimalist GNU for Windows)**:它是一套为Windows设计的GNU工具集,包括GCC编译器、连接器等,能够用来编译和链接C、C++...

    msys64.zip添加了MinGW的MSYS2的压缩包

    **MSYS2与MinGW简介** MSYS2是一个为Windows平台设计的软件包管理系统,它提供了类似Unix的开发环境,可以方便地安装和管理开源软件。MinGW(Minimalist GNU for Windows)则是一个开放源码的编译工具集,允许在...

    MSYS 1.0.10 && MSYS 1.0.11

    MSYS,全称为 Minimal SYStem,是一款基于MinGW(Minimalist GNU for Windows)的轻量级UNIX-like环境,主要用于在Windows系统上构建和运行基于GNU工具链的命令行程序。MSYS提供了一个接口,使得开发者可以在Windows...

    MSYS_ MinGW_7z_convert

    标题中的"MSYS_ MinGW_7z_convert"指的是在Windows环境下进行源码编译时常用的工具集合。MSYS(Minimal SYStem)是为在Windows上构建和运行GNU工具链提供的一种轻量级Unix-like环境。MinGW(Minimalist GNU for ...

    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进行...

    QtCreator 3.5.0 patch for MinGW in MSYS2

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

    MSYS-1.0.10 MSYS-1.0.10

    MSYS,全称为 Minimal SYStem,是一款基于 Mingw 的轻量级开发环境,主要用于在 Windows 操作系统上提供一个类似 Unix 的命令行环境。它并非一个完整的操作系统,而是一套工具集,允许开发者在 Windows 上编译和构建...

    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链接的...

    MSYS2国内源的配置文件

    MSYS2是一个为Windows平台设计的轻量级Unix-like环境,它使得在Windows上构建和运行原生的GNU工具集成为可能。这个环境基于MinGW-w64项目,支持32位和64位的Windows系统。MSYS2提供了一个类似于POSIX的环境,包括...

    msys运行vim依赖

    标题“msys运行vim依赖”涉及的是在MSYS(Minimal SYStem)环境下成功运行Vim编辑器所需的一些关键依赖。MSYS是一个轻量级的Unix-like环境,它为Windows提供了一个模拟POSIX接口,使得用户可以在Windows上编译和运行...

Global site tag (gtag.js) - Google Analytics