[20160911]windows下建立硬連結.txt
[20160911]windows下建立硬連結.txt
--大家知道linux ln命令可以建立硬連線或者軟連線.參考:
http://blog.itpub.net/267265/viewspace-1812272/
--實際上windows下也有類似ln命令,只不過許多人很少在命令列使用windows,對於裡面的命令列命令知道的更少.
--透過例子說明,使用fsutil就可以建立硬連線.補充一點建立這種硬連線僅僅支援NTFS檔案系統,不要指望支援FAT32.
--實際上這個測試,主要有使用者需求修改schema,連結http://blog.itpub.net/267265/viewspace-2124787/
--裡面提到操作要drop tablespac,這樣透過建立硬連線可以一定程度減少錯誤。
G:\>echo aaa > a.txt
G:\>dir a.txt
驅動器 G 中的卷是 test
卷的序列號是 E0CD-FBA5
G:\ 的目錄
2016-09-11 16:52 6 a.txt
1 個檔案 6 位元組
0 個目錄 154,017,792 可用位元組
G:\>fsutil
---- 支援的命令 ----
behavior 控制檔案系統行為
dirty 管理卷的被損壞的位數
file 檔案特定命令
fsinfo 檔案系統資訊
hardlink 硬連結管理
objectid 物件 ID 管理
quota 配額管理
reparsepoint 重分析點管理
sparse 稀疏檔案控制
usn USN 管理
volume 卷管理
G:\>fsutil hardlink create
用法 : fsutil hardlink create <新檔名> <現有檔名>
例如 : fsutil hardlink create c:\foo.txt c:\bar.txt
G:\>fsutil hardlink create g:\a.txt g:\other\b.txt
錯誤: 系統找不到指定的檔案。
--//微軟真夠變態,新檔名要放在前面..
G:\>fsutil hardlink create g:\other\b.txt g:\a.txt
為 g:\other\b.txt <<===>> g:\a.txt 建立了硬連結
G:\>echo bbb>> g:\other\b.txt
G:\>cat a.txt
aaa
bbb
G:\>cat \other\b.txt
aaa
bbb
--可以發現我修改了g:\other\b.txt而a.txt的內容也跟著變化.
--至於如何知道這2個檔案存在連結關係,在windows下從那裡看,我還真不知道,那位知道告訴我。
--我google看了一下:
Vista、Windows 7
在Vista和Win7下面,命令簡化了,是mklink,功能比XP中的fsutil強了很多。
D:\tools\rlwrap>mklink
mklink
建立符號連結。
MKLINK [[/D] | [/H] | [/J]] Link Target
/D 建立目錄符號連結。預設為檔案
符號連結。
/H 建立硬連結,而不是符號連結。
/J 建立目錄聯接。
Link 指定新的符號連結名稱。
Target 指定新連結引用的路徑
(相對或絕對)。
D:\tools\rlwrap>mklink c.sql a.sql
mklink c.sql a.sql
為 c.sql <<===>> a.sql 建立的符號連結
D:\tools\rlwrap>dir ?.sql /l
dir ?.sql /l
驅動器 D 中的卷沒有標籤。
卷的序列號是 0006-A37E
D:\tools\rlwrap 的目錄
2015/03/14 22:23 4,926 a.sql
2016/09/11 20:52 <SYMLINK> c.sql [a.sql]
3 個檔案 4,980 位元組
0 個目錄 97,416,499,200 可用位元組
D:\tools\rlwrap>mklink /h d.sql a.sql
mklink /h d.sql a.sql
為 d.sql <<===>> a.sql 建立了硬連結
D:\tools\rlwrap>dir ?.sql /l
dir ?.sql /l
驅動器 D 中的卷沒有標籤。
卷的序列號是 0006-A37E
D:\tools\rlwrap 的目錄
2015/03/14 22:23 4,926 a.sql
2016/09/11 20:52 <SYMLINK> c.sql [a.sql]
2015/03/14 22:23 4,926 d.sql
3 個檔案 9,852 位元組
0 個目錄 97,416,499,200 可用位元組
--軟連線可以發現,但是如何確定硬連線還是不知道。
(WS.10).aspx
D:\tools\rlwrap>fsutil hardlink list d.sql
\tools\rlwrap\a.sql
\tools\rlwrap\d.sql
D:\tools\rlwrap>fsutil hardlink
---- 支援的 HARDLINK 命令 ----
create 建立硬連結
list 列舉檔案上的硬連結
--另外一臺XP的機器沒有list這個命令的說明,不知道是否是版本的問題。
--大家知道linux ln命令可以建立硬連線或者軟連線.參考:
http://blog.itpub.net/267265/viewspace-1812272/
--實際上windows下也有類似ln命令,只不過許多人很少在命令列使用windows,對於裡面的命令列命令知道的更少.
--透過例子說明,使用fsutil就可以建立硬連線.補充一點建立這種硬連線僅僅支援NTFS檔案系統,不要指望支援FAT32.
--實際上這個測試,主要有使用者需求修改schema,連結http://blog.itpub.net/267265/viewspace-2124787/
--裡面提到操作要drop tablespac,這樣透過建立硬連線可以一定程度減少錯誤。
G:\>echo aaa > a.txt
G:\>dir a.txt
驅動器 G 中的卷是 test
卷的序列號是 E0CD-FBA5
G:\ 的目錄
2016-09-11 16:52 6 a.txt
1 個檔案 6 位元組
0 個目錄 154,017,792 可用位元組
G:\>fsutil
---- 支援的命令 ----
behavior 控制檔案系統行為
dirty 管理卷的被損壞的位數
file 檔案特定命令
fsinfo 檔案系統資訊
hardlink 硬連結管理
objectid 物件 ID 管理
quota 配額管理
reparsepoint 重分析點管理
sparse 稀疏檔案控制
usn USN 管理
volume 卷管理
G:\>fsutil hardlink create
用法 : fsutil hardlink create <新檔名> <現有檔名>
例如 : fsutil hardlink create c:\foo.txt c:\bar.txt
G:\>fsutil hardlink create g:\a.txt g:\other\b.txt
錯誤: 系統找不到指定的檔案。
--//微軟真夠變態,新檔名要放在前面..
G:\>fsutil hardlink create g:\other\b.txt g:\a.txt
為 g:\other\b.txt <<===>> g:\a.txt 建立了硬連結
G:\>echo bbb>> g:\other\b.txt
G:\>cat a.txt
aaa
bbb
G:\>cat \other\b.txt
aaa
bbb
--可以發現我修改了g:\other\b.txt而a.txt的內容也跟著變化.
--至於如何知道這2個檔案存在連結關係,在windows下從那裡看,我還真不知道,那位知道告訴我。
--我google看了一下:
Vista、Windows 7
在Vista和Win7下面,命令簡化了,是mklink,功能比XP中的fsutil強了很多。
D:\tools\rlwrap>mklink
mklink
建立符號連結。
MKLINK [[/D] | [/H] | [/J]] Link Target
/D 建立目錄符號連結。預設為檔案
符號連結。
/H 建立硬連結,而不是符號連結。
/J 建立目錄聯接。
Link 指定新的符號連結名稱。
Target 指定新連結引用的路徑
(相對或絕對)。
D:\tools\rlwrap>mklink c.sql a.sql
mklink c.sql a.sql
為 c.sql <<===>> a.sql 建立的符號連結
D:\tools\rlwrap>dir ?.sql /l
dir ?.sql /l
驅動器 D 中的卷沒有標籤。
卷的序列號是 0006-A37E
D:\tools\rlwrap 的目錄
2015/03/14 22:23 4,926 a.sql
2016/09/11 20:52 <SYMLINK> c.sql [a.sql]
3 個檔案 4,980 位元組
0 個目錄 97,416,499,200 可用位元組
D:\tools\rlwrap>mklink /h d.sql a.sql
mklink /h d.sql a.sql
為 d.sql <<===>> a.sql 建立了硬連結
D:\tools\rlwrap>dir ?.sql /l
dir ?.sql /l
驅動器 D 中的卷沒有標籤。
卷的序列號是 0006-A37E
D:\tools\rlwrap 的目錄
2015/03/14 22:23 4,926 a.sql
2016/09/11 20:52 <SYMLINK> c.sql [a.sql]
2015/03/14 22:23 4,926 d.sql
3 個檔案 9,852 位元組
0 個目錄 97,416,499,200 可用位元組
--軟連線可以發現,但是如何確定硬連線還是不知道。
(WS.10).aspx
D:\tools\rlwrap>fsutil hardlink list d.sql
\tools\rlwrap\a.sql
\tools\rlwrap\d.sql
D:\tools\rlwrap>fsutil hardlink
---- 支援的 HARDLINK 命令 ----
create 建立硬連結
list 列舉檔案上的硬連結
--另外一臺XP的機器沒有list這個命令的說明,不知道是否是版本的問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2124812/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- windows生成硬連結Windows
- linux下軟連結與硬連結Linux
- [20150930]linux ln建立硬連線.txtLinux
- 硬連結和軟連結
- Linux下原始檔建立硬連結後壓縮原始檔的問題Linux
- Windows 中的硬連結、目錄聯接(軟連結)、符號連結、快捷方式Windows符號
- 硬連結與軟連結詳解
- Linux軟連結和硬連結Linux
- 軟連結和硬連結詳解
- linux硬連結和軟連結Linux
- “軟連結”和“硬連結”的區別
- 軟連結與硬連結的區別
- Linux(8) —— 硬連結和軟連結Linux
- Linux 硬連結與軟連結(zt)Linux
- 硬連結和軟連結的區別
- Linux下的軟連結和硬連結,檔案拷貝的區別Linux
- linux 軟硬連結Linux
- Linux 軟連結和硬連結簡介Linux
- 理解 Linux 的硬連結與軟連結Linux
- Linux精講——軟連結和硬連結Linux
- 深入理解硬連結和軟連結 (轉)
- Linux軟連線和硬連結Linux
- windows下建立asmWindowsASM
- Linux常用基本命令(軟連結與硬連結 )Linux
- 連結檔案 (硬連線 與 符號連線)符號
- linux目錄和硬連結Linux
- 軟連線、硬連結 和 i節點(inode)
- Linux---檔案、軟連結於硬連結檔案Linux
- 在Linux中,什麼是硬連結和軟連結?Linux
- C++應用程式在Windows下的編譯、連結(四)動態連結C++Windows編譯
- 解決 Windows 下 Homestead 建立軟連線失敗問題Windows
- 軟連線與硬連結的區別,以及如何刪除軟連結
- ln命令:軟連結與硬連結的區別與應用
- 簡談linux中軟連結和硬連結的區別Linux
- 【linux命令之ln命令詳解(軟連結和硬連結)】Linux
- Windows下統計埠連結數的批處理Windows
- Windows平臺下建立asmWindowsASM
- C++建立連結串列C++