vista及以上系統的mklink命令可以創建文件夾的鏈接(感覺像是文件夾的映射)。因為是從底層實現文件夾鏈接,所以這個鏈接是對應用程序透明的。
(windows 2000,xp,server 2003的相應功能是linkd,這里只說說mklink)
比如,我有一個文件夾叫C:\Program Files,但是c盤空間不多了,就想把一些應用程序轉移到d盤,但是直接剪切過去肯定行不通,應用程序會報錯,所以首先把C:\Program Files文件夾整個移動(剪切)到d盤,再執行命令:
1
|
mklink /j
"C:\Program Files"
"D:\Program Files"
|
這樣c盤下面就會多出一個帶快捷方式圖標的文件夾,全稱就是"C:\Program Files",雙擊進去其實就轉到了D:\Program Files。
而C:\Program Files這個文件夾是對應用程序透明的,也就是說,除了windows自己,應用程序並不知道C:\Program Files下面的東西其實已經轉移到d盤了,還當它們仍然在c盤。這樣就不影響原來C:\Program Files下的應用程序的使用了。
1,上面建立的鏈接屬於軟鏈接(/j),還有符號鏈接(/d)和文件的硬鏈接(/h)。
符號鏈接和軟鏈接大致相同,區別在於,軟鏈接是絕對路徑鏈接,而符號鏈接允許相對路徑的鏈接。
比如,分別創建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仍然有效。
文件的硬鏈接是對文件創建的鏈接,比如對c:\data\1.txt創建鏈接c:\data\2.txt,那么這兩個文件就是同一個文件的兩個等價別名了,相當於是指向同一個硬盤存儲空間的兩個指針,刪除其中任何一個都不影響另一個文件。但是限制就是這種鏈接不能跨分區。
2,軟鏈接和符號鏈接不能跨磁盤。
3,這個功能必須是在ntfs文件系統上才能使用。