Linux 運維之硬鏈結與軟鏈結詳解

2022-09-16 01:33:13 字數 2504 閱讀 5876

了解這個的時候不如先知道下檔案吧.

我們知道檔案都有檔名與資料,但是呢這個在 linux 上被分成兩個部分:使用者資料 (user data) 與元資料 (metadata)。

使用者資料,即檔案資料塊 (data block),資料塊是記錄檔案真實內容的地方;

而元資料則是檔案的附加屬性,如檔案大小、建立時間、所有者等資訊。

在 linux 中,元資料中的 inode 號(inode 是檔案元資料的一部分但其並不包含檔名,inode 號即索引節點號)才是檔案的唯一標識而非檔名。檔名是為了方便人們的記憶和使用     

系統或程式通過 inode 號尋找正確的檔案資料塊,所以呢檔案讀取過程則為先讀取inode,然後找block資料。

你可能看了這麼久還是一臉懵逼的,不要著急看完例項,你就懂了。

一,硬鏈結

就是乙個檔案的乙個或多個檔名-->這麼簡單的回答是不是又懵逼了呢??

通俗的講硬鏈結就是乙個你的複製人,你在的時候你幹什麼他也幹什麼,但是你不在了,他是不會消失,就不受你約束了。

可是我還要講乙個呢---------ln命令  ---> ln [選項]... [檔案]...

你看著文章只需要掌握兩個

ln  目標檔案   創乙個個性化名字   ---->硬鏈結

ln  -s   目標檔案   創乙個個性化名字------>軟鏈結

ln  就是建立鏈結的     ----->然後沒了。

ln  學會了現在正式開講  硬鏈結

我們通過硬鏈結的特性來去了解他吧

1,檔案具有相同的inode及data  block,

我們先建立乙個檔案,現在我要給他新增硬鏈結,

建立好了

是不是建立好了??然後用ls -li 檢視下看到inode一樣的

這就是inode一樣。看到這裡肯定有個模糊的理解了吧,看張圖:

2,硬鏈結是不會占用空間的

這個你知道就行,記住不占用磁碟空間

3,只能對已存在的檔案進行建立

建立的時候原始檔要在,你不可能憑空出來個鏈結檔案吧??

4,不能對目錄進行建立,只可對檔案建立  

對目錄建立是軟連線的事,硬鏈結只會建立檔案鏈結哦  

5,無論哪個檔案輸入東西另乙個也會有

這就是複製人的強大

6,刪除乙個檔案另乙個是不受影響的

我們刪除原始檔看看:

不受影響,依舊能寫能讀

注意:目錄建立是不可以的哦

也不能交叉檔案系統

我是這樣理解乙個root 系統 乙個dev  裡面東西不一樣就不行了   

二,軟連線

軟鏈結呢就像你的投影,為啥這樣說呢?你有的他有,你不在了他就變木頭

看下軟鏈結的讀取流程  

看到錯誤沒呢?

建立的時候,要建立的內容不能帶/ 所以目錄名不能和檔名重合。

軟鏈結呢可以做硬鏈結的事,即可以檔案,也可以目錄哦

檔案屬性不同呢

2, 可對不存在的檔案或目錄建立軟鏈結

這個是不是強大多了?不過你建立好了,原始檔不再,建立的是沒用的呢

我們要怎麼讓他有用呢??

答案是建立原始檔

看不閃了 活了 ,,,

同樣可以推出,,假如刪除原始檔,鏈結檔案是不能用的,無效

3,檔案內容共享,無論**有新檔案還是內容,另一邊都會有

4,軟連線是可以對檔案或者目錄建立的

這個可以理解吧

5,建立軟鏈結時,鏈結計數 i_nlink 不會增加

Linux之軟鏈結與硬鏈結

在講區別前,讓我們先了解下ext檔案系統是如何工作的?例子 假設在系統查詢 root tmp test 的檔案時,系統是如何一步一步進行的 1 首先找到根目錄的 inode 根目錄的 inode 是系統已知的,inode 號是 2 然後判斷使用者是否有許可權訪問根目錄的 block 2 如果有許可權...

linux硬鏈結與軟鏈結

1.linux鏈結概念 linux鏈結分兩種,一種被稱為硬鏈結 hard link 另一種被稱為符號鏈結 symbolic link 預設情況下,ln命令產生硬鏈結。硬連線 硬連線指通過索引節點來進行連線。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節...

Linux 硬鏈結與軟鏈結

原貼 2007 08 05 10 19 49 linux硬鏈結與軟鏈結 2006 12 01 15 03 首先要弄清楚,在linux系統中,核心為每乙個新建立的檔案分配乙個inode 索引結點 每個檔案都有乙個惟一的inode號。檔案屬性儲存在索引結點裡,在訪問檔案時,索引結點被複製到內存在,從而實...