軟連線、硬連結 和 i節點(inode)
一. inode
-
inode(索引節點):用來存放檔案及目錄的基本資訊,包含時間、檔名、使用者及群組等。
-
inode 是 UNIX 作業系統中的一種資料結構,其本質是結構體,它包含了與檔案系統中各個檔案相關的一些重要資訊。在 UNIX 中建立檔案系統時,同時將會建立大量的 inode 。通常,檔案系統磁碟空間中大約百分之一空間分配給了 inode 表。
-
Linux的檔案系統三個部分:
①超級塊(super block):記錄此檔案系統的整體資訊。包括inode/block的總量、使用量、剩餘量,以及檔案系統的格式等。
②inode:記錄檔案的屬性,一個檔案佔用一個inode,同時記錄此檔案資料所在的block號碼。
③資料區(block):實際的檔案內容。如果檔案小於block,只能獨佔這個block,空閒部分不能再被其他檔案使用。如果檔案太大時,會佔用多個block。 -
i節點(inode的表格中內容、inodetable):
①每個inode大小固定為128位元組,含有有關一個檔案的資訊。
②主要內容:檔案訪問模式(rwx)、檔案的所有者和組、檔案大小、ctime、atime、mtime、檔案特性標誌、檔案真正內容指向(磁碟地址表)。
③在i節點中最重要的一項是磁碟地址表。 -
ls -i命令可顯示出inode:
-
建立一個檔案的過程,這個過程需要4個步驟:
①檔案屬性的儲存:核心先在i節點表中找到一個空的節點(假設是47,表示的是i節點表中第9個位置的i節點),將檔案的屬性激勵進去。
②檔案內容的儲存:一個檔案的內容往往需要許多的儲存塊(假設是3個塊)才能容納,而這些儲存塊是不連續的。核心會從自由塊的列表中找出3個自由的儲存塊,分別是塊300,100,200(核心找塊的順序不一定是從小到大排的)。核心就會把資料一次複製到塊300,100,200中。
③將檔案儲存檔案內容的資訊記錄到i節點中:上面已經將檔案依次放到塊300,200,100中了,所以在i節點的磁碟分佈區中依次記錄這3個標號,代表檔案存放的地方以及組合順序。
④新增檔名到目錄中:這個檔名就是使用者取的名字(假設是name)。核心將(8,name)新增到目錄檔案中,這樣檔名和i節點就對應起來了,就可以通過檔名來知道檔案的屬性和訪問檔案的內容。
二. 軟連線和硬連結
-
Linux連結分兩種:①硬連結(Hard Link)②符號連結(Symbolic Link)。
-
預設情況下,ln命令產生硬連結。
1. 硬連結
- 硬連線指通過索引節點來進行連線。在Linux中,多個檔名指向同一索引節點是存在的。一般這種連線就是硬連線。
- 硬連線的作用是允許一個檔案擁有多個有效路徑名,這樣使用者就可以建立硬連線到重要檔案,以防止“誤刪”的功能。其原因如上所述,因為對應該目錄的索引節點有一個以上的連線。
- 只刪除一個連線並不影響索引節點本身和其它的連線,只有當最後一個連線被刪除後,檔案的資料塊及目錄的連線才會被釋放。也就是說,檔案真正刪除的條件是與之相關的所有硬連線檔案均被刪除。
- 硬連結的兩個限制:
①不允許給目錄建立硬連結。
②只有在同一檔案系統中的檔案之間才能建立連結。 即不同硬碟分割槽上的兩個檔案之間不能夠建立硬連結。這是因為硬連結是通過結點指向原始檔案的,而檔案的i-結點在不同的檔案系統中可能會不同。
- Linux中建立硬連線測試:
2.軟連線
- 軟連線檔案有類似於Windows的快捷方式。它實際上是一個特殊的檔案。
- 在軟連線中:檔案實際上是一個文字檔案,其中包含的有另一檔案的位置資訊。
- Linux中建立軟連線測試:
參考文章:
相關文章
- Linux軟連線和硬連結Linux
- 硬連結和軟連結
- LINUX 硬連線和軟連線Linux
- Linux軟連結和硬連結Linux
- 軟連結和硬連結詳解
- linux硬連結和軟連結Linux
- “軟連結”和“硬連結”的區別
- Linux(8) —— 硬連結和軟連結Linux
- 硬連結和軟連結的區別
- Linux硬連結和軟連線有哪些知識點?Linux入門Linux
- Linux 軟連結和硬連結簡介Linux
- Linux精講——軟連結和硬連結Linux
- 深入理解硬連結和軟連結 (轉)
- 軟連線與硬連結的區別,以及如何刪除軟連結
- linux 的軟連線與硬連線Linux
- 硬連結與軟連結詳解
- 何為軟連線、何為硬連結(含圖解)圖解
- 連結檔案 (硬連線 與 符號連線)符號
- 軟連結與硬連結的區別
- linux下軟連結與硬連結Linux
- Linux 硬連結與軟連結(zt)Linux
- 在Linux中,什麼是硬連結和軟連結?Linux
- linux 軟硬連結Linux
- 理解 Linux 的硬連結與軟連結Linux
- 簡談linux中軟連結和硬連結的區別Linux
- 【linux命令之ln命令詳解(軟連結和硬連結)】Linux
- 5分鐘讓你明白“軟連結”和“硬連結”的區別
- 5 分鐘讓你明白 “軟連結” 和“硬連結”的區別
- LINUX ln命令硬連線軟連線詳細解釋Linux
- Linux常用基本命令(軟連結與硬連結 )Linux
- scrapy軟連線失效和pip軟連線失效
- Linux下的軟連結和硬連結,檔案拷貝的區別Linux
- Linux中軟連結和硬連結之間有什麼區別和聯絡?Linux
- Linux---檔案、軟連結於硬連結檔案Linux
- Redis筆記 — 連結串列和連結串列節點的API函式(三)Redis筆記API函式
- W5500多節點連線
- unix系統當中 軟連線與硬連線的區別(轉)
- ln命令:軟連結與硬連結的區別與應用