![]() |
學(xué)校地址:湖南省 長沙市 雨花區(qū) 車站南路紅花坡路口 |
![]() |
學(xué)校地址:湖南省 長沙市 雨花區(qū) 車站南路紅花坡路口 |
windows系統(tǒng)文件我們可以通過資源管理器查看,通過資源管理器可以非常直觀地了解到windows目錄結(jié)構(gòu)。如果你想要知道這個目錄有多大,直接右鍵屬性就能很清晰地了解。但是如果你用同樣的方式去查看windows7或者windows vista,顯示出來的數(shù)據(jù)可能就和真實(shí)的數(shù)據(jù)有所差別。這個是為什么呢?
其實(shí)微軟在設(shè)計(jì)windows7和windows vista時使用了NTFS文件系統(tǒng)的特性之一:硬連接(Hard Link)來實(shí)現(xiàn)WinSxS機(jī)制。
安裝過vista和win7的朋友都知道,系統(tǒng)盤必須保證是NTFS格式,微軟官方提供的解釋有以下幾點(diǎn):
系統(tǒng)文件保護(hù)所需
各種安全保護(hù)機(jī)制,如MIC所需
winSXS所需
...
關(guān)于 后一點(diǎn)的WinSXS所需,微軟沒有提供相關(guān)資料說明,不過這個也是Windows Vista / Windows 7 系統(tǒng)需要NTFS文件系統(tǒng)的一個條件,因?yàn)橹挥性?NTFS 文件系統(tǒng)上面,才能實(shí)現(xiàn)硬連接機(jī)制,也才能達(dá)到優(yōu)化Windows目錄占用磁盤空間的目的。
一般的快捷方式是創(chuàng)建一個LNK文件,在這個LNK文件里面描述了目標(biāo)文件/目錄的屬性,資源管理器或者其他文件管理工具利用SHELL32.DLL里面的API函數(shù)獲得這個LNK文件所指向的文件/目錄,從而進(jìn)行訪問。
硬連接:是一種基于文件系統(tǒng)級別上的針對文件的快捷方式,基于文件系統(tǒng)級別的含義就是說,只要文件系統(tǒng)啟動了,那么對應(yīng)的快捷方式也就生效了。換句話說,這種連接是常存的,因?yàn)槲募到y(tǒng)是必須要隨機(jī)啟動的。
硬連接是NTFS文件系統(tǒng)特有的屬性之一,在Linux下面,也有類似的機(jī)制。硬連接適用于在同一個卷的文件級別,硬連接是不能跨卷的。
Windows Vista / Windows 7 自帶了創(chuàng)建硬連接的命令:mklink.exe,利用這個命令,我們可以給指定的文件創(chuàng)建硬連接:
下面的命令將在link.txt和source.txt之間建立硬連接關(guān)系
C:\Users\Smallfrogs\Desktop>mklink /h link.txt source.txt
為 link.txt <<===>> source.txt 創(chuàng)建了硬鏈接
注 意上面的例子:link.txt本是一個不存在的文件,但是當(dāng)執(zhí)行完mklink命令以后,link.txt文件也就被創(chuàng)建了。其實(shí),link.txt是一個虛假的文件,它是在文件系統(tǒng)層面上對source.txt文件的一個映射,而link.txt是不占硬盤空間的。
關(guān)于硬盤空間的占用問題,是這樣測試的:
1、給硬盤劃分一個新分區(qū),空間只有2GB;
2、在這個分區(qū)的test目錄里面新建了一個1.9GB大小的文件,此時剩余空間是0.1GB;
3、用mklink命令給這個1.9GB大小的文件建立了一個硬連接;
4、檢查這個分區(qū)的剩余空間,還是0.1GB,但是如果用資源管理器看test目錄的屬性,會發(fā)現(xiàn)有2個文件,總大小是3.8GB(整個分區(qū)才2GB,能夠容納3.8GB大小的文件嗎?顯然不可能了)。
還是針對上述的例子,如果我們把原始的文件 source.txt 刪除以后,link.txt文件還是會繼續(xù)存在的,且內(nèi)容就是source.txt的文件內(nèi)容。也就是說,我們刪除source.txt,實(shí)際上刪除的僅僅是這種連接關(guān)系,文件本身還是沒有被操作的。
關(guān)于硬連接, 后一個需要介紹的內(nèi)容是:當(dāng)硬連接建立以后,硬連接雙方任何一個對象被修改,都會造成對應(yīng)的連接對象被修改。例如上面的例子:如果修改了 link.txt,那么source.txt文件也會同步被修改,反之亦然。這一點(diǎn)和SHELL層面的快捷方式不同,SHELL層面的快捷方式文件 LNK 僅僅是一個指示關(guān)系,修改LNK文件并不影響LNK文件指向的對象,修改LNK文件指向的對象也不會影響LNK文件。
|
關(guān)于收錄1 |
關(guān)于收錄2 |
網(wǎng)站幫助 |
廣告合作 |
下載聲明 |
友情連接 |
網(wǎng)站地圖 |
| 共有文章: 12228 篇
今日新文: 75 篇
當(dāng)前在線: