Linux文件系統的硬連接與軟連接

Linux 系統中有軟連接和硬連接兩種特殊的「文件」。node

軟連接能夠看做是Windows中的快捷方式,可讓你快速連接到目標檔案或目錄。linux

硬連接則透過文件系統的inode來產生新檔名,而不是產生新檔案。索引

建立方法都很簡單:get

1. 權限

軟連接(符號連接) ln -s   source  target 方法

2. im

3. 數據

硬連接 (實體連接)ln       source  targetimg

4. 文件

inode

要解釋清楚二者的區別和聯繫須要先說清楚 linux 文件系統中的 inode 這個東西。當劃分磁盤分區並格式化的時候,整個分區會被劃分爲兩個部分,即inode區和data block(實際數據放置在數據區域中)這個inode便是(目錄、檔案)文件在一個文件系統中的惟一標識,須要訪問這個文件的時候必須先找到並讀取這個 文件的 inode。 Inode 裏面存儲了文件的不少重要參數,其中惟一標識稱做 Inumber, 其餘信息還有建立時間(ctime)、修改時間(mtime) 、文件大小、屬主、歸屬的用戶組、讀寫權限、數據所在block號等信息。

一般會根據分區的用途來安排inode的數量(這是另一個話題了),好比文件數量不少而文件都很小,則須要調增inode較大,以便能索引所有文件。不然將會出現這個分區並無寫滿而沒法寫入任何文件的狀況。

 

目錄文件與檔案文件

目錄文件:記錄該目錄下的文件名

檔案文件:記錄實際文件數據

inode自己並不記錄文件名,文件名記錄在目錄文件的block當中,因此新增、刪除、更改文件名與目錄的W權限有關。所以當咱們要讀某個檔案時,就務必通過其目錄的inode和block,而後纔可以找到待讀取檔案的inode號,最終纔會讀到正確的檔案block內的數據。系統是經過索引節點(而不是文件名)來定位每個文件。

目錄inode(知足權限?) => 目錄block => 檔案inode(知足權限?) => 檔案block

硬連接

多個檔名對應同一個inode,硬連接只是在某個目錄下新增一筆檔名鏈 接到某個inode號碼的關聯記錄而已。若是將上圖中任何一個檔名刪除,檔案的inode與block都還存在,依然還能夠經過另外一個檔名來讀取正確的檔 案數據。此外,不論用哪個檔名來編輯,最終的結果都會寫入相同的inode和block中,所以均能進行數據的修改。

軟鏈接

 

軟鏈接就是創建一個獨立的文件,而這個文件會讓數據的讀取指向它link的那個檔案的檔名,因爲只是做爲指向的動做,因此當來源檔案被刪除以後,軟鏈接的檔案沒法開啓,由於找不到原始檔名。連結檔的內容只有檔名,根據檔名連接到正確的目錄進一步取得目標檔案的inode,最終就可以讀取到正確的數據。若是目標檔

相關文章
相關標籤/搜索