mklink的一些总结

因为E5计划白嫖到了一个5t的onedrive,同步盘在我的E盘上,但移动硬盘有一个特别大的文件需要备份,不想放在E盘上占空间于是发现可以使用mklink链接文件到同步的文件夹中而不占用实际空间。

mklink /d "目标文件地址" "源文件地址"

这个需要在cmd中才能使用,尝试了一下powershell反而不好用。好奇mklink的原理去查了一下。

  • mklink:这是Windows中用于创建符号链接的命令。
  • /d:这个参数告诉 mklink 你想要创建一个目录符号链接(directory junction)。如果你在创建文件符号链接时,可以省略这个参数。
  • "C:\Users\gala\OneDrive\IC618":这是你要创建的符号链接的名称和路径。它将出现在 C:\Users\gala\OneDrive 目录下,并且将被命名为 IC618
  • "D:\IC618":这是符号链接将指向的实际目录路径。当你访问 C:\Users\gala\OneDrive\IC618 时,你实际上会看到 D:\IC618 目录中的内容。
MKLINK [[/D] | [/H] | [/J]] Link Target
        /D        创建目录符号链接。默认为文件符号链接。
        /H        创建硬链接而非符号链接。
        /J        创建目录联接。
        Link      指定新的符号链接名称。
        Target    指定新链接引用的路径(相对或绝对)。

/D 和 /J最大的区别:

在复制的时候:/d 和 /j 均生成源目录的内容副本,变为一般文件夹
在剪切/移动的时候:/d会直接将连接文件移动,但还是指向源文件而 /j 会直接将源文件剪切走。

  • /D (符号链接): 它就是一个“高级快捷方式”。你剪切它,只是把这个“地址牌”从 A 文件夹挪到了 B 文件夹,它依然指着原来的老地方。
  • /J (目录联接): 因为它在文件系统底层被视为“本地目录的别名”,当你把 /J 创建的文件夹拖动到另一个硬盘分区时,Windows 会认为你想要“移动这个文件夹及其包含的所有文件”。
    所以,/d就像一个高级快捷方式;/j是绝对引用