一、特點概述:
1、Unix文件系統(tǒng)的組織是分級樹型結(jié)構(gòu)形式。其類似于倒向的樹,樹的根是根目錄,樹上每個結(jié)點都是一個目錄,而樹葉則是信息文件。Unix十分靈活。每個用戶都可以建立自己的文件系統(tǒng),將掛載到Unix文件系統(tǒng)中,或者從Unix文件系統(tǒng)中卸載自己的文件系統(tǒng)。
2、引入索引結(jié)點iNode的概念,將文件名和文件說明部分分開,分別作為目錄文件和索引文件的一個表項。不僅可以加速對文件的檢索過程,減輕通道I/O的壓力,還可以給文件的鏈接和共享帶來極大的方便。
3、文件的物理結(jié)構(gòu)為混合索引式文件結(jié)構(gòu)。即,文件的物理結(jié)構(gòu)可能包括多種索引結(jié)構(gòu)形式:單級索引結(jié)構(gòu),兩級索引結(jié)構(gòu),多級索引結(jié)構(gòu)形式。這樣可提高文件查詢的速度,節(jié)省文件地址所需存儲空間。
4、采用成組鏈接法管理空閑盤塊。這種管理方式結(jié)合了空閑鏈法和空閑表法的優(yōu)點,有避免了鏈(表)過長的缺點。
二、硬鏈接與軟鏈接
文件都有文件名與數(shù)據(jù),這在 Linux 上被分成兩個部分:用戶數(shù)據(jù) (user data) 與元數(shù)據(jù) (metadata)。用戶數(shù)據(jù),即文件數(shù)據(jù)塊 (data block),數(shù)據(jù)塊是記錄文件真實內(nèi)容的地方。
元數(shù)據(jù)則是文件的附加屬性,如文件大小、創(chuàng)建時間、所有者等信息。在 Linux 中,元數(shù)據(jù)中的 inode 號(inode 是文件元數(shù)據(jù)的一部分但其并不包含文件名,inode 號即索引節(jié)點號)才是文件的唯一標(biāo)識而非文件名。文件名僅是為了方便人們的記憶和使用,系統(tǒng)或程序通過 inode 號尋找正確的文件數(shù)據(jù)塊。

1、硬鏈接
有著相同 inode 號僅文件名不同的文件,因此硬鏈接存在以下幾點特性:
- 文件有相同的 inode 及 data block;
- 只能對已存在的文件進(jìn)行創(chuàng)建;
- 不能交叉文件系統(tǒng)進(jìn)行硬鏈接的創(chuàng)建;
- 不能對目錄進(jìn)行創(chuàng)建,只可對文件創(chuàng)建;
- 刪除一個硬鏈接文件并不影響其他有相同 inode 號的文件。
2、軟鏈接
軟鏈接與硬鏈接不同,若文件用戶數(shù)據(jù)塊中存放的內(nèi)容是另一文件的路徑名的指向,則該文件就是軟連接。軟鏈接就是一個普通文件,只是數(shù)據(jù)塊內(nèi)容有點特殊。軟鏈接有著自己的 inode 號以及用戶數(shù)據(jù)塊。因此軟鏈接的創(chuàng)建與使用沒有類似硬鏈接的諸多限制:
- 軟鏈接有自己的文件屬性及權(quán)限等;
- 可對不存在的文件或目錄創(chuàng)建軟鏈接;
- 軟鏈接可交叉文件系統(tǒng);
- 軟鏈接可對文件或目錄創(chuàng)建;
- 創(chuàng)建軟鏈接時,鏈接計數(shù) i_nlink 不會增加;
- 刪除軟鏈接并不影響被指向的文件,但若被指向的原文件被刪除,則相關(guān)軟連接被稱為死鏈接(即 dangling link,若被指向路徑文件被重新創(chuàng)建,死鏈接可恢復(fù)為正常的軟鏈接)。
