在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 MKLINK [[/D] | [/H] | [/J]] Link Target
/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分區。