Mklink的使用

Mklink的使用,第1张

mklink是Windows 7下的一个类似于linux下In的命令,其作用是在NTFS文件系统中创建文件或目录的链接(类似于桌面快捷方式)。如果加以利用其发挥的作用是非常的大的,不仅可以帮助我们节省不少时间,而且可以使我们重装系统后不再丢失用户文件。

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硬连接不能跨盘符进行连接, 只能在同一盘符下链接。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11515042.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存