Linux 硬鏈結和軟鏈結小結

2022-09-02 11:18:12 字數 1791 閱讀 3061

每個linux儲存裝置的分割槽被格式化成檔案系統後,

一般生成兩個部分:

第一部分是inode;inode是用來儲存資料屬性資訊的;

inode具有指向檔案實體的功能,但是inode唯獨不包含檔名

檔名儲存在它上一級目錄的block中。

inode是有大小的

inode的大小在分割槽被格式化建立檔案系統之後就無法更改了,格式化之前可以指定inode的大小,不過一般工作環境沒這個需求

檢視:dumpe2fs /dev/sda1|grep -i "inode size"

檢視檔案系統inode的總量和剩餘量和檢視檔案系統的block的總量和剩餘量

磁碟空間是否滿了(no space left on device) 由兩項引數決定

第一是inode是否滿了 第二是block是否滿了 任何乙個滿了都無法存放檔案了

可以使用df -i 和 df -h 檢視

inode:

1.磁碟被分割槽格式化為檔案系統之後會生成inode和block

2.inode的作用是存放檔案的屬性資訊以及作為檔案的索引的功能(它指向檔案的實體)

3.inode是磁碟上的一塊儲存空間;

4.inode號相同的檔案互為硬鏈結檔案,可以認為是乙個檔案的不同的入口

5.乙個檔案被建立後至少要占用乙個inode和乙個block

6.檢視檔案的inode資訊: ls -li 或者用stat 命令檢視

7.生成指定的inode大小

mkfs.ext4 -b 2048 -i 256 /dev/sdb
block:

1.磁碟讀取檔案資料是按block為單位讀取的

2.乙個檔案可能要占用多個block 每讀取乙個block就會消耗一次磁碟i/o;

3.如果想要提公升磁碟i/o效能,那麼就要使磁碟一次性讀取的資料盡量的多(block大小合理)

4.如果block的大小太大,存放小的檔案(遠小於block大小),就會造成空間浪費,如果block太小,會消耗磁碟i/o;

5.一般block大小為4k

6.mkfs.ext4 -b 2048 -i 256 /dev/sdb 可以設定block大小

開啟檔案的基本流程:

linux的檔名是儲存在父目錄的block裡面的,並指向這個檔案的inode節點,這個檔案的inode節點

再標記指向存放這個檔案的block的資料快,我們刪除乙個檔案,實際上並不清除inode節點和block

的資料,只是在這檔案的父目錄裡面的block中,刪除這檔案的名字,從而使得這檔名消失,並且無法指向這個檔案

的inode節點,當沒有檔名指向這inode節點的時候,會同時釋放inode節點和存放這個檔案的資料塊,並且更新

inode map和block map今後讓這些位置可以放置其他檔案資料

每個檔案都有2個link計數器:i_count 和 i_nlink。

i_count的意義是當前檔案使用者(或被程序呼叫)的數量,

i_nlink 的意義是硬鏈結的數量;

當乙個檔案被某乙個程序引用時,對應i_count數就會增加;當建立檔案的硬鏈結的時候,對應i_nlink數就會增加。

Linux 硬鏈結和軟鏈結

硬鏈結是通過鏈結原始檔的索引節點來進行有效鏈結。linux系統中的每個檔案都有乙個自己的索引節點,如同資料庫中的每條記錄都有自己的唯一索引一樣。自我感覺硬鏈結就像是windows下乙個檔案的拷貝,唯一不同的地方是多個該檔案的拷貝 硬鏈結 通過原始檔的索引節點來共享和更新自己的內容,一旦該節點上的任一...

Linux軟鏈結和硬鏈結

1.linux鏈結概念 linux鏈結分兩種,一種被稱為硬鏈結 hard link 另一種被稱為符號鏈結 symbolic link 預設情況下,ln命令產生硬鏈結。硬連線 硬連線指通過索引節點來進行連線。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節...

Linux軟鏈結和硬鏈結

1.linux鏈結概念 linux鏈結分兩種,一種被稱為硬鏈結 hard link 另一種被稱為符號鏈結 symbolic link 預設情況下,ln命令產生硬鏈結。硬鏈結 硬鏈結指通過索引節點來進行鏈結。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節...