歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> inode工作原理及軟連接與硬鏈接

inode工作原理及軟連接與硬鏈接

日期:2017/3/3 10:59:53   编辑:Linux技術
inode工作原理及軟連接,硬鏈接
inode:
在linux文件系統中,不管什麼類型的文件,保存在磁盤分區中時,系統都會分配一個編號,叫做索引節點index node,簡稱inode
inode裡面存儲了文件的很多參數:
文件類型,權限。UID,GID,屬主,屬組
鏈接數(指向這個文件名路徑名稱個數)
該文件的大小和不同的時間戳
指向磁盤上文件的數據指針
....
在 Linux 中,元數據中的 inode 號(inode 是文件元數據的一部分但其並不包含文件名,inode 號即索引節點號)才是文件的唯一標識而非文件名。文件名僅是為了方便人們的記憶和使用,系統或程序通過 inode 號尋找正確的文件數據塊,系統獲取文件內容過程如下:



inode工作原理:
文件有元數據和數據內容組成,元數據存放在inode表裡,而數據內容則是存放在數據塊中
而在inode表裡除了元數據,還有指針,指針對應的就是數據塊的路徑
直接指針:直接指針有12個,分別指向12個數據塊,數據塊一般默認4k,所以直接指針指向的
是小於12*4k=48k的文件
間接指針:在inode表裡,直接指針過後就是間接指針,間接指針指向一個數據塊,但是此數據塊
不存儲數據,而是作為一個數據塊指針,每個指針大小為4個字節,所以一個數據塊裡面可存 放4096/4=1024個數據塊指針,同樣每個數據塊指針會指向一個4k大小數據塊,最後間接指針
能夠指向的文件大小為1024*4k=4096k=4M
雙重間接指針:在間接指針後,雙重間接指針可以和間接指針一樣理解,只是把最後指向的存放內容的 數據塊作為數據塊指針,這樣能夠指向的文件大小為1024*1024*4k=4G
後面依次類推就可以了,原理一樣











硬鏈接:可以理解為一個文件的不同的名字
特性:
1.硬鏈接文件有相同的inode及數據塊(date block)
2.只能對已存在的文件進行創建
3.刪除一個硬鏈接文件不會影響其他有相同inode號的文件
4.不能跨文件系統進行硬鏈接的創建
5.不能對目錄進行創建,只可對文件創建
6.創建硬鏈接會增加鏈接次數,而刪除鏈接則會減少鏈接次數
圖一
[b]

[/b]
圖二
[b]

[/b]
軟鏈接:可以理解為一個文件的快捷方式
特性:
軟鏈接文件有自己的文件屬性及權限等等
2. 可對不存在的文件或目錄創建軟連接
3. 軟連接可跨文件系統創建
4. 創建軟連接時,鏈接次數不會增加
5. 刪除軟鏈接文件並不影響源文件,但是如果源文件被刪除了,則其軟鏈接文件變紅,內容無法訪問



文件訪問圖示:
[b][b]

[/b][/b]
總結下硬鏈接和軟連接文件的區別:
1.源文件和硬鏈接文件inode號相同,是同一個文件,只不過文件名不一樣,所以大小屬性等信息都一樣
而源文件與軟鏈接文件inode號不同,是兩個文件,所以大小,屬性之類都不相同
2.查看文件詳細屬性時可知,軟連接注明了是鏈接文件(例c ->b),而硬鏈接文件沒有,所以我們可以 認為鏈接文件和源文件是完全平等的關系,而軟連接可以理解為是源文件的快捷方式
3. 鏈接文件的數目變更,軟鏈接文件的鏈接次數不會變化,而硬鏈接文件的鏈接次數會隨之變化
4.軟連接不受文件系統的限制,硬鏈接只能在同一文件系統
5.當源文件從一個目錄移動到其他目錄中時,訪問硬鏈接文件不受影響,訪問軟鏈接文件會報錯
Copyright © Linux教程網 All Rights Reserved