硬連線

硬連線是對於同一檔案系統的一個檔案的連線,節點是檔案存在的唯一標識,在檔案系統中是唯一的,但在不同的檔案系統則有可能重複。這樣的話,在不同檔案系統中作連結時,是不能使用ln A B,應該用符號連線,即是軟連線,它只是包含了系統中一個完整的路徑名引用。硬連線就是記錄了檔案的地址,你在檔案管理器中看到的每個檔案都是磁碟里檔案的“硬連線”。當一個檔案的所有硬連線都被刪除的時候,該檔案占用的空間才可以被新加入的數據覆蓋。

基本介紹

  • 中文名:硬連線
  • 外文名:Hard-wired
  • 拼音:yìnglián jiē
  • 注音:ㄧㄥˋㄌㄧㄢˊ ㄐㄧㄝ
在Windows下創建硬連線,Windows XP,Vista、Windows 7,相關工具,Link Shell Extension,命令行工具Ln,查找重複檔案的命令行工具Dupemerge,連線的套用,共用檔案,無需複製,放到一塊,方便管理,同步軟體,請靠邊站,

在Windows下創建硬連線

LINUX、UNIX下面創建硬連線已經“司空見慣”了(上面提到的是Linux裡面的命令),這裡說的是怎么在Windows下面創建硬連線。

Windows XP

XP 也有硬連線?沒錯!不過,先聲明,這個僅僅是NTFS才有的。另外要注意的是,硬連線不能跨卷的,簡單的說就是不能在C糟給D糟的檔案創建硬連線
XP下面也有硬連線,只是知道的人不多(個人覺得是因為沒有UI,所以知道的人少,但在win7裡面被認為是“新功能”,那是因為WinSxS資料夾中的檔案套用了硬連線技術,而讓“硬連線”這一名詞在Win7中名聲大噪。搜尋“Win7 硬連線”,大半的結果是說這件事的),所以套用也不廣泛。
創建方法
fsutil hardlink create <新檔案名稱> <現有檔案名稱>
比如:
fsutil hardlink create C:\硬連線.txt C:\原檔案.txt
這樣C:\原檔案.txt就多了一個“別名”:硬連線.txt。
另外,fsutil還有其它很有用的功能,比如,改短名,詳細自己輸入fsutil慢慢看。
上面說的是為檔案創建硬連線,能不能給資料夾創建硬連線呢?可以用一個工具——junction.exe,可以用來創建資料夾硬連線,這個可以跨分區——你是否產生了“把D:\TEST 指向 C:\ ,然後再用 fsutil hardlink create D:\test.ini D:\TEST\boot.ini 這個命令來創建跨分區檔案硬連線”的想法呢?我試了,失敗,輸出結果如下(因為我的junction剛下載,是一個壓縮檔,就用WinMount虛擬成一個盤了。粗體字是系統輸出的,其中包含網址的那行刪掉了):
Z:\>junction.exe d:\test c:\
Junction v1.05 - Windows junction creator and reparse point viewer
Created: d:\test
Targetted at: c:\
Z:\>fsutil hardlink create d:\test.exe d:\test\boot.ini
新連結和現有檔案必須在同一個卷上。
junction命令還可以把空資料夾刪除掉
D:\>md TestJunctionDir
D:\>junction TestJunctionDir /d
Deleted TestJunctionDir.
如果用於非空資料夾就會出錯:
C:\Temp\test>md TestJunctionDir
C:\Temp\test>dir > TestJunctionDir\test.txt
C:\Temp\test>junction TestJunctionDir /d
Junction v1.05 - Windows junction creator and reparse point viewer
Copyright (C) 2000-2007 Mark Russinovich
Systems Internals
Error deleting TestJunctionDir: ???????
【注意事項】
使用junction做資料夾連線需要注意的是:不能直接在資源管理器裡面刪除資料夾的連線,要用下面的命令來刪除,否則源資料夾裡面的內容也會被刪除切記切記
junction 資料夾連線名 /d

Vista、Windows 7

Vista和Win7下面,命令簡化了,是mklink,功能比XP中的fsutil強了很多。
MKLINK [[/D] | [/H] | [/J]] Link Target
/D 創建目錄符號連結。默認為檔案符號連結。
/H 創建硬連結,而不是符號連結。
/J 創建目錄聯接。
Link 指定新的符號連結名稱。
Target 指定新連結引用的路徑
至於Windows 2000就不清楚了,不過硬連線是NTFS的特性,如果沒有fsutil程式,從XP中複製一個過去應該也是可以的。

相關工具

Link Shell Extension

上面介紹的是命令行,有沒有更方便的辦法呢?當然,大家用過右鍵拖動檔案嗎?用右鍵拖動檔案,會有“複製檔案、移動檔案、創建捷徑”等選單項,要是有“創建硬連線”該多好啊!抱著這種想法搜尋了一下,找到了個好東西:Link Shell Extension
這個軟體支持多種語言,其中就包括中文。安裝了這個軟體之後,檔案或資料夾右鍵選單就多了一項“選擇源連線點”——類似常用的“複製”命令,選擇連線點之後,就可以在空白地方點擊右鍵,再選擇“創建連線點”。
也可以用右鍵拖動檔案或資料夾來創建連線點,非常方便。
如果選擇的是資料夾,則有三個選項:目錄連線點、硬連線副本、智慧型副本。這三者的區別如下:
目錄連線點就是上面介紹的junction,不過改進了不少——不會發生上面說的刪除連線點而導致刪除檔案的悲劇了。
硬連線副本
硬連線副本硬連線副本
就是複製一個資料夾結構,並創建所有檔案的硬連線
智慧型副本
智慧型副本智慧型副本
就是創建一個副本,和普通的複製不同的是,“智慧型副本”把資料夾內部的硬連線關係也複製了。

命令行工具Ln

功能跟上面的LSE是一樣的,具體使用方法請看其官方網站。

查找重複檔案的命令行工具Dupemerge

Dupemerge可以查找硬碟上的重複檔案,並為其創建硬連線,以達到節省空間的目的。
需要注意的是,不要將一些軟體中“雷同的”——通常是零位元組——配置檔案也弄成硬連線了。

連線的套用

共用檔案,無需複製

如果你有幾個版本的Eclipse的話,用硬連線來共享外掛程式,那就可以省下很多硬碟空間了。
至於怎么找重複檔案,推薦使用AcuteFinder(或者用上面提到的Dupemerge),這個軟體可以導出檔案列表,然後在excel裡面編輯生成硬連線的批處理檔案。保存運行就好了。

放到一塊,方便管理

把需要備份的檔案創建硬連線放到一個資料夾(比如C:\Backup),在重灌系統的時候就把Backup資料夾複製到其它盤就行了。

同步軟體,請靠邊站

只要你需要同步的檔案放在同一個NTFS分區,就可以對同步軟體說Byebye了。直接添加相應的硬連線就可以實現同步的功能了。
不在同一個分區的話也可以用“資料夾連線”來實現同步的功能,不過前提還是要NTFS分區。

相關詞條

熱門詞條

聯絡我們