一.首先在區別前得搞清楚unix檔案系統的基本結構
(1).unix檔案系統:管理計算機硬體的軟體,詳情參見以下**:
(2).基本結構:即檔案系統是如何管理資料的,也就是資料結構的型別,此處所講的是inode資料結構。
(3)inode資料結構:(摘自鳥哥私房菜基礎學習篇第三版p198)
super block(超級塊):記錄此檔案系統的整體資訊,包括inode/block的總量和使用量,剩餘量以及檔案系統的格式和相關的資訊;
block(資料塊):實際記錄檔案的內容,若檔案太大,會占用多個block。
目錄項:由於乙個i節點可能會有不同的檔名,所以維護這些檔名的陣列即為目錄項,目錄項中的每一項包括檔案索引節點i的節點號和檔名,所以目錄只是將檔案的名稱和它的i節點號結合在一起的一張表。舉例來說,i節點和資料塊好比乙個真實的人,但是這個人可能會有不同的名字(中文名,英文名,外號等等),而這些名字就是它的的目錄項,不管你的名字如何變化,我這個人是不會變的。
inode(i節點):記錄檔案的屬性,乙個檔案占用乙個乙個inode,同時記錄該檔案的資料所在的block號碼,乙個i節點至少有乙個目錄項;
希望大家可以結合apue的p91-p93理解。
二.接下來區別這三個概念
(2)符號鏈結(軟鏈結):假設a鏈結b檔案,那麼a檔案和b檔案的inode資料結構的四個部分都不同,也就是在底層無任何關係,當訪問時a檔案通過尋找自己資料塊中的記錄的路徑找到b檔案的目錄項(檔名),然後訪問b檔案的資料。可以利用下圖簡單粗暴的理解:
(3)檔案複製:假設a複製b,則a與b的inode的四部分都不同,無任何關係,只是a和b的資料塊部分的資料一模一樣。
硬鏈結與軟鏈結(符號鏈結)
我們知道檔案都有檔名與資料,這在 linux 上被分成兩個部分 使用者資料 user data 與元資料 metadata 使用者資料,即檔案資料塊 data block 資料塊是記錄檔案真實內容的地方 元資料則是檔案的附加屬性,如檔名 檔案大小 建立時間 所有者 檔案所在的inode等資訊。在 l...
Linux的硬鏈結與軟鏈結(符號鏈結)
linux的檔案鏈結方式分為硬鏈結與軟鏈結 也叫符號鏈結 兩種,在linux中鏈結也被視為檔案來看待,一樣可以被執行 編輯和訪問。對系統中的應用程式而言,對鏈結的操作就是對原始檔案的操作,所以鏈結不是副本。如果熟悉linux的檔案系統與目錄樹 相關部落格鏈結擴充套件檔案系統 檔案系統與目錄樹的關係 ...
軟鏈結 硬鏈結
硬鏈結與軟鏈結的聯絡與區別 我們知道檔案都有檔名與資料,這在 linux 上被分成兩個部分 元資料 metadata 是檔案的附加屬性,如檔案大小 建立時間 所有者等資訊。使用者資料 user data 即檔案資料塊 data block 資料塊是記錄檔案真實內容的地方 元資料則在 linux 中,...