Linux中inode的大小、作用講述,linuxinode
linux中的inode
理解inode
inode是檔案儲存體,檔案儲存體在營盤山,最小的儲存單位叫扇區。每個扇區的儲存512位元組。
作業系統讀取硬碟的時候,不會一個一個扇區的讀取,這樣效率太低。而是一次性讀取多個扇區,一次性讀取一個塊。也就是8個連續的扇區組成一個block。
檔案儲存體在塊中,但是我們還需要找一個儲存元資訊的地區叫做inode。中文譯名“索引節點”。
每個檔案都有對應的索引節點。
inode的內容
在inode的元資訊中,儲存了以下內容:
* 檔案的位元組數
* 檔案擁有者的User ID
* 檔案Group ID
* 檔案的讀寫執行許可權
* 檔案的時間戳記,ctime上次變動的時間,mtime檔案內容上次變動的時間,atime,檔案上次訪問的時間。
* 連結數,就是有多少檔案名稱指向這個inode
* 我呢間資料block的位置。
我們可以使用以下命令盡心查看inode的資訊
stat demo.txt
inode的大小
在inode也是會消耗磁碟的空間,所以格式化的時候,作業系統會將磁碟分為兩個部分,一個是資料存放的位置就是block;另一個就是inode區,用來存放inode的資訊。
每個inode一般是128位元組或者是256位元組。inode節點的總數是在格式化的時候給定你的。一般是每1kb或每2kb就設定一個inode。那麼inode table就會佔用磁碟的12.8%。
我們可以使用以下命令查看:
df -i
查看每個inode節點的大小用命令
dumpe2fs -h /dev/hda |grep "Inode size"
每個檔案都需要有inode,因此有可能出現inode已經用完,但是硬碟沒有存滿。這個時候就沒有辦法建立新的檔案。
inode號碼
每個inode都有一個號碼,作業系統用inode號碼來識別不同的檔案。
需要注意的是,在linux系統內部,使用的就是inode號碼來識別檔案,檔案名稱只是便於識別的別稱。
我們使用以下命令查看檔案inode號
ls -i demo.txt
目錄檔案
linux系統中,目錄也是一種檔案,開啟目錄其實就是開啟目錄檔案。
目錄檔案結構非常簡單,只有兩部分組成一個是inode號,一個是檔案的名稱。檔案的元資訊都儲存在inode中。
永久連結
一般情況下,檔案名稱合inode號碼是一一對應的,每個inode號碼都是對應著一個檔案名稱。但是在linux中允許多個檔案指向同一個inode號碼。這就意味著我們可以通過不同的檔案名稱訪問相同的內容。修改一個檔案,影響所有的檔案,但是刪除檔案只會影響自己本身的訪問,不影響其他檔案名稱的訪問。這種情況叫做“永久連結(hard link)”。
建立永久連結命令:
ln 源檔案 目標檔案
任何一個目錄的永久連結總數等於,2加上他子目錄數(包含隱藏目錄)。
軟串連
檔案A和檔案B的inode號碼雖然不一樣,但是檔案A的內容是檔案B的路徑。讀取檔案A時,系統會自動將訪問者導向檔案B。因此,無論開啟哪一個檔案,最終讀取的都是檔案B。這時,檔案A就稱為檔案B的”軟連結”(soft link)或者”符號連結(symbolic link)。
建立命令為:
ln -s 源檔案 目標檔案或目錄
inode的特殊作用
由於inode號碼和檔案名稱的分離。導致一些linux系統特有的現象。
1. 有時檔案包含特殊字元無法正常刪除,這個時候刪除inode節點即可。
2. 移動或者重新命名檔案,不會影響inode號碼。
3. 開啟一個檔案以後,系統使用inode號碼識別檔案,不用考慮檔案名稱。