windows7中的“mklink命令”

网友投稿 710 2022-09-20

windows7中的“mklink命令”

windows7中的“mklink命令”

从 Vista 以后,微软将用户文件和用户的软件配置( AppData ) 明确划分开,并且全部存放在使用者的用户目录下。   Linux早已这样做了,并且在Linux中可将 home 挂载为独立分区,而微软显然还没学到家。用户目录依旧和系统目录一起放在同一分区。   如何将用户目录移动到非系统分区?这是本文的出发点。但本文的重心不在于此,而是 mklink ,一个命令。 一、何为 mklink  mklink 是何方神圣,值得专门作文讲述?   如果用过 Linux ,那想必也看到过符号链接(这是一种特殊的文件),也用过 “ ln ” 这个链接命令,mklink 和 ln 的功能几乎一样。   mklink 便是用来创建符号链接的,这个命令并不知名,使用的人也不多。 自从 Vista 以后,微软便在 widows中 偷偷地用起了这个工具 。在用户目录下,可以看到很多很像快捷方式的文件,当然这是隐藏的,但却不能打开,其实这便是符号链接。 >dir C:\Users\wclu /a驱动器 C 中的卷是 win7卷的序列号是 8CD0-A743 [plain] view plaincopyprint?   C:\Users\wclu 的目录      2009/06/11 11:42    

          .   2009/06/11 11:42              ..   2009/06/11 00:04              AppData   2009/06/11 00:04         Application Data [C:\Users\wclu\AppData\Roaming]   2009/06/11 00:04              Contacts   2009/06/11 00:04         Cookies [C:\Users\wclu\AppData\Roaming\Microsoft\Windows\Cookies]   2009/06/11 10:05              Desktop   2009/06/11 00:04              Documents   2009/06/11 02:44              Downloads   2009/06/11 00:04              Favorites   2009/06/11 00:04              Links   2009/06/11 00:04         Local Settings [C:\Users\wclu\AppData\Local]   2009/06/11 00:04              Music   2009/06/11 00:04         My Documents [C:\Users\wclu\Documents]     上述标红色的文件,便是符号链接了(上述文件并非C:\Users\wclu目录下全部文件) 。 Vista/Windows 7使用这些符号链接,是为了兼容XP等系统。 二、mklink 用法mklink 只能在命令提示符 “CMD” 中使用。 >mklink /?创建符号链接。 MKLINK [[/D] | [/H] | [/J]] Link Target /D      创建目录符号链接。黙认为文件符号链接。/H      创建硬链接,而不是符号链接。/J      创建目录联接。Link    指定新的符号链接名称。   [是指目标文件夹或文件]Target 指定新链接引用的路径     [是指源文件夹或文件](相对或绝对)。 注:上述的符号链接等同于Linux中的软链接。 为了试验 mklink 的功能,我在 C分区中创建目录 a ,并在目录中存放文件 1.txt。 创建文件链接E:\>mklink c:   c:\a.txt拒绝访问。 E:\>mklink c:.txt c:\a.txt为 c:.txt <<===>> c:\a.txt 创建的符号链接 可见为文件创建链接时,符号链接文件的扩展名要和原文件保持一致。 E:\>mklink c:\a.txt d:.txt当文件已存在时,无法创建该文件。 E:\>mklink d:.txt c:\a.txt为 d:.txt <<===>> c:\a.txt 创建的符号链接 可见为文件创建链接时,必须是 “mklink 符号链接文件名   原文件名”的格式。 创建目录链接E:\>mklink /d c:\b d:\a为 c:\b <<===>> d:\a 创建的符号链接 虽然d:\a 目录不存在,但依然可以创建链接,很好很强大。但打开链接时,提示错误。 E:\>mklink /d d:\a c:\a为 d:\a <<===>> c:\a 创建的符号链接 E:\>dir d: /a驱动器 D 中的卷是 soft卷的序列号是 BE86-8884 D:\ 的目录 [plain] view plaincopyprint?   2009/06/11 10:00              $RECYCLE.BIN   2009/06/11 13:08          3.txt [c:\a.txt]   2009/06/11 13:18         a [c:\a]   2009/06/11 12:54              Program Files   2009/06/11 09:58              System Volume Information   1 个文件              0 字节   4 个目录 31,089,442,816 可用字节     当把D分区中的链接文件删除时,C分区中的文件和文件夹不受任何影响。 三、mklink /d 与 makelink /j 的异同从 mklink 的帮助中可以看到,两者皆可以创建目录链接。 细心的同学可以发现,前者是创建目录链接,而后者是创建目录联接。 一字之差,有何分别? 下面分别用这两种方式为同一目录创建链接: E:\>mklink /j d:\a c:\a为 d:\a <<===>> c:\a 创建的联接 E:\>mklink /d d:\b c:\a为 d:\b <<===>> c:\a 创建的符号链接 下面显示D分区中的文件及目录列表: E:\>dir d: /a驱动器 D 中的卷是 soft卷的序列号是 BE86-8884 D:\ 的目录 [plain] view plaincopyprint?   2009/06/11 10:00              $RECYCLE.BIN   2009/06/11 13:33          1.txt [c:\a.txt]   2009/06/11 13:34         a [c:\a]   2009/06/11 13:35         b [c:\a]   2009/06/11 12:54              Program Files   2009/06/11 09:58              System Volume Information   1 个文件              0 字节   5 个目录 31,089,442,816 可用字节     mklink 不加参数或加参数 /d 时,创建的链接文件为型(代表链接到目录)。 当加参数 /j 时,只能为目录创建联接,并且创建的联接文件为型,两种类型的链接文件有显著区别:   从最开始的 “ >dir C:\Users\wclu /a ” 可以看出,微软自家使用的都是型,至于为何,留待考证。 四、链接文件的特性刚刚讲述了如何用 mklink 创建链接文件,那么接下来重点讲述如何链接文件的特性,既然是特性,那就是与众不同了。 符号链接文件自身不能被 “复制”(只能通过特殊方法才能复制)当复制符号链接文件时,会将符号链接所链接的目标文件或目录进行复制,并非是复制符号链接文件本身。如何实现符号链接文件的复制呢?>copy /?/L           如果源是符号链接,请将链接复制到目标而不是源链接指向的实际文件。 >xcopy /?      /B           对照链接目标复制符号链接本身 /* d:.txt 为型符号链接 */E:\>xcopy d:.txt e:.txt /b目标 E:.txt 是文件名还是目录名(F = 文件,D = 目录)? FD:.txt复制了 1 个文件 /* d:\a 为型符号链接 */E:\>xcopy d:\a e:\a /B目标 E:\a 是文件名还是目录名(F = 文件,D = 目录)? D复制了 0 个文件 /* d:\b 为型符号链接 */E:\>xcopy d:\b e:\b /B目标 E:\b 是文件名还是目录名(F = 文件,D = 目录)? D复制了 0 个文件 E:\>dir e: /a驱动器 E 中的卷是 data卷的序列号是 FEEE-FB51 E:\ 的目录 [plain] view plaincopyprint?   2009/06/11 10:00              $RECYCLE.BIN   2009/06/11 13:33          1.txt [c:\a.txt]   2009/06/11 13:34              a   2009/06/11 13:35         b [c:\a]   2009/06/11 09:58              System Volume Information   1 个文件              0 字节   4 个目录 31,362,203,648 可用字节     可见采用xcopy命令并上参数 /B ,可以成功复制 型的符号链接文件,而型链接却不能被复制。 符号链接文件的透明性符号链接的操作是透明的:对符号链接文件进行读写的程序会表现得直接对目标文件进行操作。普通的文件操作命令(如cp、rm等)都能直接作用于符号链接。用于读写文件内容的命令将会直接访问目标文件。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:用了这么多年的泛型,你对它到底有多了解?(什么叫做泛型)
下一篇:Windows下重置Mysql密码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~