Linux文件系統(tǒng)特點、硬鏈接與軟鏈接

一、特點概述:

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ù)為正常的軟鏈接)。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容