最近發(fā)現(xiàn)了mklink這個(gè)工具,使用了幾次,覺得挺好用的,分享一下:
mklink 用于創(chuàng)建 NTFS 文件系統(tǒng)中文件或目錄的鏈接,其效果和 unix 系統(tǒng)下的 ln 命令類似,可以從底層(文件系統(tǒng))實(shí)現(xiàn)文件或目錄的快捷方式或別名,以這種方式創(chuàng)建的文件或目錄鏈接對(duì)于應(yīng)用程序是透明的; 通過指定參數(shù)可以創(chuàng)建出不同形式的文件或目錄鏈接,具體分為硬鏈接、軟鏈接和符號(hào)鏈接三種,此命令從vista以后開始加入到微軟系統(tǒng)中,windows2008,windows7都可以用。
下面是這個(gè)命令的參數(shù)及說明(參數(shù)格式請直接在 cmd 下運(yùn)行 mklink 查看)。
- 默認(rèn)情況:文件的符號(hào)鏈接
如沒有參數(shù)指定,則創(chuàng)建文件的符號(hào)鏈接,刪除文件鏈接不會(huì)影響目標(biāo)文件,且創(chuàng)建鏈接時(shí)允許目標(biāo)文件不存在[1];
- 目錄的符號(hào)鏈接(SYMLINKD) /D
該參數(shù)可以創(chuàng)建目錄的符號(hào)鏈接,刪除目錄鏈接不會(huì)影響目標(biāo)目錄,且創(chuàng)建鏈接時(shí)允許目標(biāo)目錄不存在;
- 目錄的軟鏈接(JUNCTION) /J
該參數(shù)可以創(chuàng)建目錄的軟鏈接(聯(lián)接),作用基本和符號(hào)鏈接類似[2],NT6系統(tǒng)的用戶目錄就是以這種形式存在的;
- 文件的硬鏈接 /H
該參數(shù)可以創(chuàng)建文件的硬鏈接,即一個(gè)文件的多個(gè)別名[3],NT6系統(tǒng)WinSXS目錄下的大部分文件是以這個(gè)形式存在的;
[1] 創(chuàng)建符號(hào)鏈接和軟鏈接時(shí)允許目標(biāo)文件或目錄不存在,此時(shí)若訪問鏈接文件會(huì)得到一個(gè)“位置不可用”的提示, 若之后重新將目標(biāo)文件或目錄補(bǔ)上(路徑、名稱一致即可),則該鏈接仍然有效;
[2] 目錄符號(hào)鏈接和軟鏈接的區(qū)別在于,軟鏈接在創(chuàng)建時(shí)會(huì)自動(dòng)引用目標(biāo)目錄的絕對(duì)路徑,而符號(hào)鏈接允許相對(duì)路徑的引用, 如分別用 mklink /D dira tdir 和 mklink /J dirb tdir 創(chuàng)建 dira、dirb 對(duì) tdir 的符號(hào)鏈接和軟鏈接, 之后將 dira、dirb 移動(dòng)到其它目錄下,則訪問 dira 時(shí)會(huì)提示“位置不可用”,訪問 dirb 時(shí)仍然正常指向 tdir; 而分別用 mklink /D dira c:\demo\tdir 和 mklink /J dirb c:\demo\tdir 創(chuàng)建 c:\demo\tdir 的符號(hào)鏈接和軟鏈接, 再將這兩個(gè)目錄鏈接移動(dòng)到其它目錄下,則 dira 和 dirb 均可正常指向 c:\demo\tdir; 由此可見當(dāng)創(chuàng)建目錄鏈接時(shí)對(duì)目標(biāo)目錄使用絕對(duì)路徑,D 和 J 兩個(gè)參數(shù)實(shí)現(xiàn)的目錄鏈接效果是一樣的;
[3] 只能創(chuàng)建文件的硬鏈接,使用 /H 參數(shù)創(chuàng)建目錄的硬鏈接時(shí)會(huì)提示拒絕訪問; 硬鏈接是同一個(gè)文件的不同別名,例如對(duì) a.txt 創(chuàng)建了 b.txt 和 c.txt 兩個(gè)硬鏈接, 此時(shí) a.txt、b.txt 和 c.txt 均是同一個(gè)文件的別名,若刪除其中任意一個(gè)或兩個(gè), 則剩下的那個(gè)文件(無論是事先存在還是之后創(chuàng)建)不受影響,仍然指向原先那個(gè)文件。
最后再說幾點(diǎn): 創(chuàng)建文件或目錄鏈接僅限于 NTFS 文件系統(tǒng),且鏈接只能針對(duì)同一個(gè)磁盤上的文件或目錄; 硬鏈接只能創(chuàng)建對(duì)本分區(qū)文件的引用,即不可創(chuàng)建跨分區(qū)的文件硬鏈接; 通過硬鏈接創(chuàng)建的別名文件在統(tǒng)計(jì)大小時(shí)會(huì)按原文件的大小計(jì)算,而軟鏈接和符號(hào)鏈接大小均為零; 硬鏈接在創(chuàng)建時(shí)會(huì)事先檢測目標(biāo)文件是否存在,即不允許空鏈接的存在。
|