Mklink命令详细介绍
Windows 7下的mklink命令通过指定参数可以建立出不同形式的文件或目录链接,分为硬链接(hard link)、符号链接(symbolic link)和软链接(联接)(junction)三种。
1.符号链接(symbolic link)
建立一个软链接相当于建立一个文件(或目录),这个文件(或目录)用于指向别的文件(或目录),和win的快捷方式有些类似。删除这个链接,对原来的文件(或目录)没有影像没有任何影响;而当你删除原文件(或目录)时,再打开链接则会提示“位置不可用”。
2.软链接(联接)(junction)
作用基本和符号链接类似。区别在于,软链接在建立时会自动引用原文件(或目录)的绝对路径,而符号链接允许相对路径的引用。
3.硬链接(hard link)
建立一个硬链接相当于给文件建立了一个别名,例如对1.TXT创建了名字为2.TXT的硬链接,若使用记事本对1.TXT进行修改,则2.TXT也同时被修改,若删除1.TXT,则2.TXT依然存在,且内容与1.TXT一样。
建立链接请注意:
1、建立文件或目录链接限于 NTFS 文件系统,符号(软)链接的建立可以跨文件系统;
2、硬链接只能用于文件,不能用于目录,符号(软)链接可以为目录建立链接;
3、硬链接只能建立同一分区内的文件指向;
4、硬链接不允许对空文件建立链接,符号(软)链接可以。
Mklink的参数定义
无参数指定:建立文件的符号链接。无参数指定的默认情况下,建立的是文件的符号链接,删除链接文件不会影响源文件,
/d:建立目录的符号链接符号链接(symbolic link)
/j:建立目录的软链接(联接)(junction)
/h:建立文件的硬链接(hard link)
命令格式:mklink /d(定义参数) \MyDocs(链接文件) \Users\User1\Documents(原文件)
最后,至于删除建立的链接,跟删除文件一样使用”DEL”命令。
Mklink命令用途
转移系统中的用户设置文件
Windows 7中将用户设置与系统文件分离,所有的用户设置及用户文件都存储在C盘下的User目录(在中文版Windows 7中显示为“用户”目录),重装系统后所有的系统设置及用户文件都会消失。
Windows 7安装完成后可以将C盘下的User目录转移到非系统分区,如D盘,这样,重装系统后只要重新将C盘下的User目录链接到D盘即可。我们在创建链接后系统在访问C:/User目录其实是在访问D:/User目录。
命令如下:
1.复制User目录到D盘: robocopy “C:\Users” “D:\Users” /E /COPYALL /XJ
2.强制删除User目录: rmdir “C:\Users” /S /Q
3.创建C盘下的User的软件链接,链接到D盘User目录:mklink /J “C:\Users” “D:\Users”
重装系统后只需重复第二条和第三条命令及可
有了这条命令就再也不怕重新系统了
随着金山快盘停止服务,急需寻找可替代的同步网盘。Dropbox、onedrive之类由于喜闻乐见的防火墙使用上不方便,首先PASS。国内能够实现同步的网盘尚有百度云同步盘、微云云同步盘、坚果云等,坚果云据传能够实现增量同步,但有容量限制,适合用来做办公文件的多平台、多设备的同步,百度、微云这两个适合用来做文件的备份。
但是问题来了,除了坚果云可以实现多文件夹同步外,其他国内网盘都要求设定一个同步文件夹,放在该文件夹下的文件都可以自动同步到网盘。
使用 mklink 命令可以让网盘 同步任意文件夹 。
除了坚果云国内大部分网盘都要求设定一个同步文件夹,放在该文件夹下面的文件都可以自动同步上网盘。但是原来文件夹已做好分类,只有部分需要同步备份,拷到同步网盘下同步,会破坏原有的文件夹结构。那么是否可以在不打乱原有的文件夹结构的情形下,实现多文件夹的同步了?
经过搜索资料,发现网上有人已经使用 mklink 命令实现了任意文件夹的同步。
mklink是批处理命令,必须在CMD里面使用。
该命令可以实现文件夹的跳转, 令两个文件夹实现等同 。
MKLINK [[/D] | [/H] | [/J]] Link Target
有了d参数建立的是目录的符号链接,类型是symlink。对于符号链接, 除了删除以外的 *** 作都是对源文件的 *** 作 ,比如复制到其他位置,复制的是源文件,而不是链接。删除符号链接,则是删除链接本身,而不是源文件。删除源文件,链接就打不开了。删除链接,源文件还在。(/D /S 参数创建的文件都使用上述标准)
下面来举个列子,假设坚果云的同步文件夹为D:\我的坚果云。我想把文件夹E:\Work中的文件同步到坚果云的同步文件夹中,并命名为MyWork。那么执行
显示结果为
1.为D:\我的坚果云\MyWork<<===>>E:\Work创建的符号链接
这时候打开D:\我的坚果云会看到多了个叫MyWork 的文件夹(注意: 此次不能事先建立MyWork文件夹,必须由系统自动生成, 否则会出现 “当文件已存在时,无法创建该文件” 的错误。同时,若路径中包含空格,必须加“”把路径框起来: mklink /d "D:\我的坚果云\MyWork" "E:\Work" ),显示的是 快捷方式的图标 ,并且不可编辑:
这时,如果在E:\Work添加文件,则在D:\我的坚果云\MyWork中也能看到一样的文件,同时坚果云已经把这个文件同步了。(在D:\我的坚果云\MyWork中添加或删除文件也会影响到E:\Work,这两个文件夹是等同的。)
以后对E:\Work中文件的任意修改都会自动同步到D:\我的坚果云\MyWork上了。
同理,不想同步时,删除D:\我的坚果云\MyWork就可以从坚果云上删除文件,又不影响E:\Work中的文件(因为删除的只是个链接)。
注:如果有用请给文章点个赞。
使用mklink 做目录关联时,提示“当文件已存在时,无法创建该文件”是设置错误造成的,解决方法为:
1、 win + R 打开资源管理器输入: cmd 点击: 确定在 cmd 里面输入: mklink /? 来查看 mklink 命令和参数的使用。
2、符号链接: mklink /d "D:\aaaa" "test1",将 test1 快捷方式放到 D:\aaaa, 及 test1 ->aaaa。
3、目录连接: mklink /j "D:\bbb" "python"及 python ->bbb。
4、硬连接: mklink /h "back\ccc.txt" "a2.txt": a2.txt ->ccc.txt硬连接不能跨盘符进行连接, 只能在同一盘符下链接。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)