檔案系統 軟連線和硬鏈結

2021-08-25 18:02:00 字數 1340 閱讀 3464

先,來看一下檔案的各個屬性。

圖1  ls li檢視檔案屬性

輸入命令是ls -li

第一行:inode(下面會將述inode)

第二行:檔案的種類和許可權

第四行:屬組

第五行:所歸屬的組

第六行:檔案的大小

第七行:檔案最後修改的時間

第八行:檔案或者目錄的名稱

其次,讓我們來看一下inode。

inode 譯成中文就是索引節點。每個儲存裝置或儲存裝置的分割槽(儲存裝置是硬碟、軟盤、u盤 ... ...

)被格式化為檔案系統後,應該有兩部份,一部份是inode,另一部份是block,block是用來儲存資料用的。而inode呢,就是用來儲存這些資料的資訊,這些資訊包括檔案大小、屬主、歸屬的使用者組、讀寫許可權等。inode為每個檔案進行資訊索引,所以就有了inode的數值。作業系統根據指令,能通過inode值最快的打找到相應的檔案。

inode相同的檔案是硬鏈結檔案。

圖2  建立硬鏈結

如圖2所示,給b.cpp建立了乙個硬鏈結,他們的inode是相同的,都是5722389。為什麼會出現這種情況呢?

原因很簡單,inode值相同的檔案,他們的關係是互為硬鏈結的關係。當我們修改其中乙個檔案的內容時,互為硬鏈結的檔案的內容也會跟著變化。如果我們刪除互為硬鏈結關係的某個檔案時,其它的檔案並不受影響。假如,我們修改了alex.cpp這個檔案,則b.cpp也會跟著變化。簡單來說就是,硬鏈結是乙個指標,它指向相同的inode,然後再去找檔案塊。

建立軟連線的檢視和過程如下圖:

圖3  建立軟鏈結

其中,decimal.cpp就是alex.cpp的軟鏈結檔案。軟鏈結克服了硬鏈結的不足,沒有任何檔案系統的限制,任何使用者可以建立指向目錄的符號鏈結。因而現在更為廣泛使用,它具有更大的靈活性,甚至可以跨越不同機器、不同

網路對檔案進行鏈結。

軟鏈結的話,是 不同inode,可以為目錄建立,可以在不同檔案系統建立。

注意:當我們修改鏈結檔案的內容時,就意味著我們在修改原始檔的內容。當然原始檔的屬性也會發生改變,但軟鏈結檔案的屬性並不會發生變化。當我們把原始檔刪除後,軟鏈結檔案只存在乙個檔名,因為失去了原始檔,所以軟鏈結所指檔案也就不存在了。

本文出自 「天道酬情

」 部落格,請務必保留此出處

檔案系統 硬鏈結 軟鏈結

我們使用ls l的時候看到的除了看到檔名,還看到了檔案元資料 linux7種檔案型別 普通檔案 目錄檔案 管道檔案 軟鏈結檔案 塊裝置檔案 字元裝置檔案socket檔案 ls l讀取儲存在磁碟上的檔案資訊,然後顯示出來 求檔案的大小 8int main 9 其實這個檔案元資訊除了通過ls方式來讀取,...

linux檔案系統 軟鏈結和硬鏈結

硬鏈結ln src dest ubpara link ls il 總用量 8 660108 rw rw r 1 ubpara ubpara 9 5月 14 19 41 a 660109 drwxrwxr x 2 ubpara ubpara 4096 5月 14 19 42 test ubpara l...

Linux檔案系統之三 硬鏈結和軟鏈結

linux檔案系統不得不提及的乙個概念便是link鏈結 軟鏈結和硬鏈結 不像windows下的快捷方式讓人容易理解,linux下的鏈結存在一定的迷惑性。要談及link鏈結概念,則必須首先介紹linux下的的檔案的讀取方式 1.由一層一層的目錄取得檔案相關的inode對映資料 2.找到目標檔案的tar...