在我的計算機上我創建了一個硬鏈接
mklink /h git-link.exe git.exe
Hardlink created for git-link.exe <<===>> git.exe
現在它們都佔空間
2012-04-17 12:14 AM 6,905,039 git-link.exe
2012-04-17 12:14 AM 6,905,039 git.exe
這有什麼意義呢?為什麼不直接複製一份呢?
答案1
建立硬連結時,您將建立兩個指向磁碟上相同實體資料的單獨檔案系統條目。
當您執行 dir 操作時,它會顯示儲存在檔案系統條目指向的位置的資料的大小。
因此,如果您創建 100 個指向單個文件的硬鏈接,它們都將報告相同的大小 - 它們報告所存儲數據的大小。這並不意味著硬連結佔用了這個空間——事實上它們沒有。硬連結佔用的空間很小。
答案2
這文件Microsoft 提供的可能會有所幫助。 (雖然它是針對Windows Server 2003,但我認為對於所有使用NTFS檔案系統的系統來說應該是相同的。)
對於硬連結:
Windows 資源管理器和命令提示字元將所有連結檔案顯示為相同大小,即使它們都共用相同的資料和實際上並沒有使用那麼多的磁碟空間。
Windows 資源管理器和 dir /s 指令遵循重新分析點,對目標磁碟區上的所有檔案和資料夾進行計數,然後將它們包含在主機磁碟區的統計資料中。這可能會誤導您,讓您相信主機磁碟區上使用的空間比實際使用的空間還要多。
您可以使用 chkdsk 輸出、NTBackup GUI 或備份日誌以及查看磁碟配額來確定磁碟區上磁碟空間的使用情況。但是,Windows 資源管理器和 dir 命令在用於此目的時有一些限制和缺點。
答案3
事實上,使用目錄硬連結(連結)是沒有意義的,不是嗎?
也就是說,考慮到資源管理器處理它們的方式。
我的觀點是,用一個例子:人們不能希望減輕磁碟“C”的物理負載(將應用程式資料資料夾或程式檔案移動到另一個磁碟“E”並使用硬連結重新填充“C”,從而保持應用程式正常運作)。 Windows 資源管理器仍會將這些連結「大小」累積到「C」上可能消耗的空間,一旦磁碟「C」缺乏可用空間,就會向使用者發出警告,即使它與硬連結「虛擬」空間消耗有關。
那麼,Windows 7 的硬連結呢?非常失望。