1. 程式人生 > >windows系統下的資料夾連結功能mklink/linkd

windows系統下的資料夾連結功能mklink/linkd

http://www.cnblogs.com/plusium/archive/2010/03/17/1688511.html

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檔案系統上才能使用。