Git - git bash 在 windows 下创建软连接

1. 概述

  1. 使用 git bash 在 windows 下创建软连接

    1. 或者叫 快捷方式
  2. 感谢 Tony 老师的帮助

    1. Tony 的技术笔记
    2. Windows 使用 ln -s 创建软链接

2. 问题

  1. 需求

    1. 使用 git bash(MINGW64) 在 windows 下创建 软连接
  2. 问题

    1. git bash 的 ln -s, 是直接复制一个文件, 两者本质没有关联
    2. windows 窗口创建的 快捷方式, git bash 又打不开

3. 解决

  1. 方案

    1. 使用 Windows Server 2003 Resource Kit Tools 内的 linkd.exe 命令来满足需求
  2. 环境

    1. OS

      1. win10 1905
    2. git

      1. 2.20.1
    3. mintty

      1. 2.9.4
    4. Windows Server 2003 Resource Kit Tools

      1. 貌似就这么一个版本

1. 安装

  1. 下载 Windows Server 2003 Resource Kit Tools

    1. 下载链接
  2. 安装

    1. 流程很简单, 正常走完即可
    2. 我安装中没遇到什么问题
  3. 测试

    1. 重新打开一个 git bash

    2. 输入 link 可以 tab 出 linkd.exe 即可

      1. 我也想用 -v, -h 之类的命令来测试, 但真是没找到
    3. 命令验证

      # 1. 直接输入命令
      > linkd 
      # 2. 原来 windows 工具的 命令行选项, 是用 / 来操作的
      > linkd /?
      

2. 使用

  1. 概述
    1. 命令的简单使用

1. 创建链接

  1. 命令

    # source 链接本身
    # destination 链接的目标
    > linkd <source> <destination>
    
  2. 例子

    # 需求: 
    ## 1. 从 e 盘根路径下的 home 目录, 
    ## 2. 跳转到 d 盘根目录下的 room 目录
    ## 3. 链接名称, 为 room
    # source: /e/home/room
    # destination: /d/room
    > linkd /e/home/room /d/room
    Link created at: /e/home/room 
    
  3. 问题

    1. 路径类型

      1. 我是用的是 git 类型的路径
        1. git 里 pwd 出来的路径
        2. 或者说, 是 linux 类型的路径
      2. windows 类型的路径, 也是可以的
        1. 我作为 source 试过, 成功了
    2. 还是路径

      1. 链接创建好后, 会给出一个路径
        1. -> 后面, 指向的是 跳转的 真实路径
        2. 但是你进入之后, 就会发现, pwd 的路径, 不太对
          1. 路径直接是 链接 的路径
          2. 但是里面内容是对的
          3. pwd 这个路径, 可能会是个坑

2. 查看链接真实路径

  1. 命令

    > linkd <source>
    
  2. 例子

    # 查看开始创建链接, 指向的实际目标
    # 显示出来的, 是 windows 格式的路径
    > link /e/home/room
    Source  today is linked to 
    d:\room
    

3. 删除链接

  1. 命令

    # 本来的指令, 是 /D, git-bash 下, 需要做一个转义
    # 也是奇怪, 为啥 linkd /? 就能直接出来呢
    > linkd <source> //D
    
  2. 例子

    > linkd /e/home/room //D
    The delete operation succeeded.
    

ps

  1. 这个 windows 的工具包, 居然可以在 git bash 下面跑...

    1. 有点不能理解
      1. bash 也能运行 windows 程序
    1. 这个命令, 不支持含有 中文 的路径
      1. 不支持 中文
        1. 中文
  2. 调整

    1. 2020-02-24 自己重新调整了一版

      1. 之前那版, 我自己都看不懂了...
    2. 补充一个 ref

      1. windows系统下的文件夹链接功能mklink/linkd
    3. 2020-06-22 再次调整

      1. 因为文中出现了错误
        1. 感谢 博客园用户Eledim 的指正
        2. 至于问题的原因, 感觉还是 写作的过程, 不够严谨
          1. 很多的素材, 应该是在 写作之前, 就已经准备好, 并且理清了的
          2. 我是 边整理, 边写作, 既要顾及思路, 也要现编例子, 以后尝试换个思路写作
posted @ 2019-08-30 11:48  轩辕拾銉  阅读(3813)  评论(2编辑  收藏  举报