先,來看一下檔案的各個屬性。
圖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...