Windows符号链接

软链接(符号链接)

  • 作用于:文件或目录

  • CMD创建命令:

    1
    2
    mklink "link" "target_file"
    mklink /d "link" "target_dir"
  • 源文件被删除后:失效。因为并没有增加文件的引用计数,源文件引用计数为零之后会从磁盘删除,链接自然失效。

  • 表现:图标上有小箭头;对于文件的软链接类型显示为.symlink,对于目录的需要打开属性才可以看到快捷方式的字样;大小显示为源文件的大小(但实际上跟源文件共用一份空间,而不是拷贝了一份)

硬链接

  • 作用于:仅文件

  • CMD创建命令:

    1
    mklink /h "link" "target_file"
  • 源文件被删除后:仍然有效。本质是增加了文件的引用计数,磁盘上的数据并没有被删掉。

  • 表现:图标上没有小箭头;类型显示为源文件的类型;大小显示为源文件的大小(但实际上跟源文件共用一份空间,而不是拷贝了一份)

目录链接

  • 作用于:仅目录

  • CMD创建命令:

    1
    mklink /j "link" "target_file"
  • 源文件被删除后:失效。类似于软链接,不增加引用计数。

  • 表现:基本同软链接。与软链接不同的是,可以通过操作目录链接直接操作源目录中的所有文件。也就是说对目录链接的操作会也会作用到源文件上。比如剪切粘贴目录链接,会发现源目录中的文件没了!如果复制粘贴目录链接,系统会提示正在复制文件!而删除目录链接并不会删掉源目录的文件。所以目录链接创建之后最好就不要移动和复制了。

关于移动链接的问题:首先肯定需要链接保存的是绝对路径才可以移动。如果创建时使用的是相对路径,硬链接和目录链接会自动保存相应的绝对路径,所以依然可以移动。而符号链接会保存创建时的相对路径,移动之后就访问不到源文件了。又因为不推荐移动目录链接,所以其实只剩下硬链接和通过绝对路径创建的软链接可以随意移动。

右键菜单扩展

安装:https://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html

可以选择安装不同语言版本的,安装完成后,资源管理器中选择文件一个或者目录,然后右键「选择源连接点」或者「Pick Link Source」,在需要的路径里右键空白处选择「创建为...」或者「Drop As...」,就可以创建指定类型的链接了。