win7文件夾的小秘密
win7文件夾的小秘密
而隨著Windows里安裝的軟件越來(lái)越多,就會(huì)有越來(lái)越多的“用戶生成文件”被保存在“用戶文件夾”里。如果你不了解win7文件夾的那些小秘密,就不能很好的使用win7系統(tǒng),因此今天就跟隨學(xué)習(xí)啦小編一起走進(jìn)win7文件夾的世界吧.
我們知道,查看一個(gè)目錄有多大的最快捷的方法就是看看資源管理器文件夾的屬性,但是我今天要說(shuō)的是:如果你用這個(gè)方法去看 Windows Vista / Windows 7 系統(tǒng)的目錄,你會(huì)被你的眼睛所欺騙,因?yàn)?,Microsoft 同學(xué)在 Windows Vista/ Windows 7 里面大量使用了NTFS文件系統(tǒng)的特性之一的:硬連接(Hard Link)來(lái)實(shí)現(xiàn)WinSxS機(jī)制!
用過(guò)的人都知道,要安裝 Windows Vista / Windows 7系統(tǒng),那么系統(tǒng)分區(qū)必須是NTFS文件系統(tǒng)。原因有以下一些:系統(tǒng)文件保護(hù)所需;各種安全保護(hù)機(jī)制,如MIC所需;WinSxS 所需……
關(guān)于最后一點(diǎn)的 WinSxS 所需,所以NTFS這是Windows Vista / Windows 7 系統(tǒng)需要的一個(gè)條件,因?yàn)橹挥性?NTFS 文件系統(tǒng)上面,才能實(shí)現(xiàn)硬連接機(jī)制,也才能達(dá)到優(yōu)化Windows目錄占用磁盤空間的目的。
關(guān)于微軟系統(tǒng)的硬鏈接
硬鏈接是什么呢?簡(jiǎn)單的說(shuō),就是一種針對(duì)文件的特殊快捷方式,只不過(guò)這種快捷方式的實(shí)現(xiàn)和一般的快捷方式不一樣。
硬連接是NTFS文件系統(tǒng)特有的屬性之一,在Linux下面,也有類似的機(jī)制。硬連接適用于在同一個(gè)卷的文件級(jí)別,硬連接是不能跨卷的。
硬鏈接,系統(tǒng)屬性測(cè)試
Windows Vista / Windows 7自帶了創(chuàng)建硬連接的命令:mklink.exe,利用這個(gè)命令,我們可以給指定的文件創(chuàng)建硬連接:
下面的命令將在link.txt和source.txt之間建立硬連接關(guān)系
C:\Users\hoii\Desktop》mklink /h link.txt gb.txt
為 link.txt 《《===》》 gb.txt 創(chuàng)建了硬鏈接
注意上面的例子:link.txt本是一個(gè)不存在的文件,但是當(dāng)執(zhí)行完mklink命令以后,link.txt文件也就被創(chuàng)建了。其實(shí),link.txt是一個(gè)虛假的文件,它是在文件系統(tǒng)層面上對(duì)gb.txt文件的一個(gè)映射,而link.txt是不占硬盤空間的。
關(guān)于硬盤空間的占用問題,可以這樣測(cè)試:
1、給硬盤劃分一個(gè)新分區(qū),空間只有2GB
2、在這個(gè)分區(qū)的test目錄里面新建了一個(gè)1.9GB大小的文件,此時(shí)剩余空間是0.1GB
3、用mklink命令給這個(gè)1.9GB大小的文件建立了一個(gè)硬連接
4、檢查這個(gè)分區(qū)的剩余空間,還是0.1GB,但是如果用資源管理器看test目錄的屬性,會(huì)發(fā)現(xiàn)有2個(gè)文件,總大小是3.8GB(整個(gè)分區(qū)才2GB,能夠容納3.8GB大小的文件嗎?顯然不可能了)
還是針對(duì)上述的例子,如果我們把原始的文件 gb.txt 刪除以后,link.txt文件還是會(huì)繼續(xù)存在的,且內(nèi)容就是source.txt的文件內(nèi)容。也就是說(shuō),我們刪除gb.txt,實(shí)際上刪除的僅僅是這種連接關(guān)系,文件本身還是沒有被操作的。
關(guān)于硬連接,最后一個(gè)需要介紹的內(nèi)容是:當(dāng)硬連接建立以后,硬連接雙方任何一個(gè)對(duì)象被修改,都會(huì)造成對(duì)應(yīng)的連接對(duì)象被修改。例如上面的例子:如果修改了link.txt,那么gb.txt文件也會(huì)同步被修改,反之亦然。這一點(diǎn)和SHELL層面的快捷方式不同,SHELL層面的快捷方式文件LNK僅僅是一個(gè)指示關(guān)系,修改LNK文件并不影響LNK文件指向的對(duì)象,修改LNK文件指向的對(duì)象也不會(huì)影響LNK文件。
WIN新系統(tǒng)下的硬鏈接情況和使用這種技術(shù)的原因
好了,基本知識(shí)介紹完了,我們來(lái)實(shí)際看看Windows目錄里面對(duì)于硬連接的使用情況吧。
經(jīng)常看到有人抱怨,Windows\WinSxS目錄占用了太多的空間,里面經(jīng)常發(fā)現(xiàn)有同名的文件,而且這些同名的文件在 Windows\System32 目錄下面也有存在,這是為啥呢?其實(shí)這就是硬連接導(dǎo)致的。
Microsoft為啥這么麻煩搞這個(gè)呢?其實(shí)這樣對(duì)系統(tǒng)的穩(wěn)定性的增加非常有好處
同樣的文件,只需要維護(hù)硬連接關(guān)系,不需要進(jìn)行多重的拷貝,這樣可以節(jié)省硬盤空間
如果涉及文件更新,只需要先在WinSxS 目錄里面下載好一個(gè)新版本,然后修改 Windows\System32 下面同名文件的硬連接關(guān)系,從舊版本的硬連接指向新版本的硬連接,這樣就能夠快速的完成文件的更新工作,而不需要進(jìn)行文件的復(fù)制,速度也會(huì)快不少
補(bǔ)丁卸載也是一樣的,只需要把硬連接指向改為舊版本就可以了,沒有文件替換的問題。而且建立了硬連接關(guān)系的文件之間的修改是同步的,因此只要有一方被修改了,另一方也會(huì)得到修改
真相大白
說(shuō)了這么多,那么如何知道 Windows 目錄的真實(shí)大小呢?有很多小工具可以使用,也可以在DOS下的第三方工具來(lái)測(cè)試,有興趣的童鞋就自己測(cè)試吧,我的測(cè)試結(jié)果如下:
對(duì)于純凈的系統(tǒng)測(cè)試結(jié)果如下,共有文件65088個(gè),其中,真實(shí)的文件有48022個(gè),其他17066個(gè)文件都是硬連接文件。真實(shí)的文件占用了14981682 KB的硬盤空間,而如果你用資源管理器看的話,那么會(huì)提示說(shuō)占用了 18244902 KB的硬盤空間。其實(shí)呢?, Windows\system32 目錄下的大多數(shù)文件都和 WinSxS 目錄建立了硬連接關(guān)系~~都多算了一次。
Windows 7操作系統(tǒng)winsxs那么多空間占著。其實(shí)沒那么多。那不過(guò)是文件同步映射導(dǎo)致的結(jié)果。
如果你安裝了時(shí)下最流行的微軟Windows 7操作系統(tǒng),是否會(huì)覺得微軟Windows 7操作系統(tǒng)下的winsxs文件夾龐大的嚇人,有些人就裝X說(shuō)Windows 7操作系統(tǒng)占空間了,你覺得呢?看了本文后,你有答案了嗎?