注: F和G盘为两个不同的磁盘
文件夹指向(软链接)
F:\>mklink /j "F:\a" "G:\b"
为 F:\a <<===>> G:\b 创建的联接
1,所有读取写入a文件夹的东东,都在b中, 创建时a文件夹自动生成,如果a存在无法创建
2,在使用中如果b文件夹不存在会发生读取写入错误
3,F 和 G为两块不同的磁盘
文件夹指向(符号链接)
F:\>mklink /d "F:\a" "G:\b"
当文件已存在时,无法创建该文件。
删除a文件夹
F:\>mklink /d "F:\a" "G:\b"
你没有足够的权限执行此操作。
WIN + R c:\Windows\System32\ 找到 cmd.exe 右键管理员打开
F:\>mklink /d "F:\a" "G:\b"
为 F:\a <<===>> G:\b 创建的符号链接
删除文件夹b,a无法访问, 删除a文件夹,b存在可读写
软链接和符号链接的区别
感觉和 /j 差不多
F:\>mklink /?
MKLINK [[/D] | [/H] | [/J]] Link Target
/D 创建目录符号链接。默认为文件
符号链接。
/H 创建硬链接而非符号链接。
/J 创建目录联接。
Link 指定新的符号链接名称。
Target 指定新链接引用的路径
(相对或绝对)。
查了查:
mklink_百度百科 Mklink | Microsoft Docs
参考: windows系统下的文件夹链接功能mklink/linkd_李未名2020的博客-CSDN博客_链接文件夹
符号链接和软链接大致相同,区别在于,软链接是绝对路径链接,而符号链接允许相对路径的链接。
比如,分别创建c:\data\tmp的符号链接c:\1和软链接c:\2,那么c:\1指向的就是同级文件夹下的data文件夹下的子文件夹tmp,而c:\2指向的是c:\data\tmp这样的绝对路径。影响就是,如果把c:\1和c:\2这两个文件夹移动到d盘,那d:\1的链接就失效了,而d:\2仍然有效。
F:\>mklink /d "F:\a1" "G:\b1"
为 F:\a1 <<===>> G:\b1 创建的符号链接
F:\>mklink /j "F:\a2" "G:\b2"
为 F:\a2 <<===>> G:\b2 创建的联接
移动b1至E:\b1 (E为第三个硬盘) a1不可用
移动b2至E:\b2 (E为第三个硬盘) a2不可用
复制或剪切 a1或a2 至E 发现a2 不会发生变动 除非删除它
文件同步
F:\>mklink /h "F:\a\1.txt" "G:\b\2.txt"
系统找不到指定的路径。
F:\>mklink /h "F:\c\1.txt" "G:\d\2.txt"
系统无法将文件移到不同的磁盘驱动器。
F:\>mklink /h "F:\c\1.txt" "F:\e\3.txt"
当文件已存在时,无法创建该文件。
删除 1.txt
F:\>mklink /h "F:\c\1.txt" "F:\e\3.txt"
为 F:\c\1.txt <<===>> F:\e\3.txt 创建了硬链接
查看c文件夹,自动创建了1.txt, 打开1.txt 写入 "asdfasdfa"保存, 查看3.txt, 同样的内容在3.txt 中 ,
删除3.txt , 打开1.txt 写入 "asdfasdfa"保存, 3.txt没有恢复
复制1.txt 至 e\ 改名3.txt 打开1.txt写入保存 3.txt没有同步, 再次创建
F:\>mklink /h "F:\c\1.txt" "F:\e\3.txt"
为 F:\c\1.txt <<===>> F:\e\3.txt 创建了硬链接
改写3.txt 查看1.txt 可以看到内容同步修改了, 删除1.txt, 改写3.txt, 保存, 1.txt没有生成, 复制3改名1至c夹, 改写1内容保存,查看3,无变动~
默默的输入了两条命令,开始安装软件... ...
mklink /j "C:\ProgramData\microsoft\VisualStudio\Packages" "F:\VisualStudio\CDisk\Packages"
mklink /j "C:\Program Files (x86)\Microsoft Visual Studio\Shared" "F:\VisualStudio\CDisk\Shared"
安装好的软件如何移动到新的文件夹?找到一个软件:FolderMove™ 符号链接创建器
也可以理解为图形化mklink的一个软件,我放到网盘了:「FolderMove」https://www.aliyundrive.com/s/oLf1Gubw7W5