軟鏈結 硬鏈結

2021-09-17 22:06:57 字數 1263 閱讀 5672

**

硬鏈結就是同一塊資料但有兩個不同的名字,讀寫的時候本質上都是修改的同一塊資料。硬鏈結在刪除的時候只是刪除了乙個名字。只有一塊資料的所有名字都刪除了的時候,資料才會被刪除。(刪除的時候相當於把牆的這一面糊上,但蘋果本身不動,只有兩面都糊上了,你才會看不到)

符號鏈結就是:我聲稱我有乙個蘋果,但是當你找我要的時候,我對你說,到某個建築物的倉庫就可以拿到那個蘋果了。可見我並不真正擁有乙個蘋果,我只是擁有「某個地方有乙個蘋果」這個資訊。但對於外部的觀察者來說,這跟我實際上擁有乙個蘋果並無差異。

複製:把乙個蘋果變成兩個蘋果。

鏈結都是為檔案起別名(alias)的方式,跟複製有本質區別的。

這裡有三點要注意:

第一,ln命令會保持每一處鏈結檔案的同步性,也就是說,不論你改動了哪一處,其它的檔案都會發生相同的變化;

第二,ln的鏈結又軟鏈結 和硬鏈結兩種,

軟鏈結就是ln -s src  dst,它只會在你選定的位置上生成乙個檔案的映象,不會占用磁碟空間,

硬鏈結ln src  dst,沒有引數-s, 它會在你選定的位置上生成乙個和原始檔大小相同的檔案,無論是軟鏈結還是硬鏈結,檔案          都保持同步變化。 

第三,指向乙個檔案的所有 硬鏈結都刪掉的話檔案的內容才會被刪掉

軟鏈結只要刪掉了源鏈結檔案,軟鏈結也就失效了

1.原理上:

硬鏈結(hard link):a是b的硬鏈結(a和b都是檔名),則a的目錄項中的inode節點號與b的目錄項中的inode節點號相同,即乙個inode節點對應兩個不同的檔名,兩個檔名指向同乙個檔案,a和b對檔案系統來說是完全平等的。如果刪除了其中乙個,對另外乙個沒有影響。每增加乙個檔名,inode節點上的鏈結數增加一,每刪除乙個對應的檔名,inode節點上的鏈結數減一,直到為0,inode節點和對應的資料塊被**。注:檔案和檔名是不同的東西,rm a刪除的只是a這個檔名,而a對應的資料塊(檔案)只有在inode節點鏈結數減少為0的時候才會被系統**。

軟鏈結(soft link):a是b的軟鏈結(a和b都是檔名),a的目錄項中的inode節點號與b的目錄項中的inode節點號不相同,a和b指向的是兩個不同的inode,繼而指向兩塊不同的資料塊。但是a的資料塊中存放的只是b的路徑名(可以根據這個找到b的目錄項)。a和b之間是「主從」關係,如果b被刪除了,a仍然存在(因為兩個是不同的檔案),但指向的是乙個無效的鏈結。

2.使用限制上:

b:可以跨檔案系統

c:可以對不存在的檔案建立軟鏈結,因為放的只是乙個字串,至於這個字串是不是對於乙個實際的檔案,就是另外一回事了

3.命令

軟鏈結 硬鏈結

硬鏈結與軟鏈結的聯絡與區別 我們知道檔案都有檔名與資料,這在 linux 上被分成兩個部分 元資料 metadata 是檔案的附加屬性,如檔案大小 建立時間 所有者等資訊。使用者資料 user data 即檔案資料塊 data block 資料塊是記錄檔案真實內容的地方 元資料則在 linux 中,...

軟鏈結 硬鏈結

其中包含的有另一檔案的位置資訊。inode,繼而指向兩塊不同的資料塊。但是 a 的資料塊中存放的只是b的路徑名 可以根據這個找到 b 的目錄項 a 和 b 之間是 主從 關係,如果 b被刪除了,a 仍然存在 因為兩個是不同的檔案 但指向的是乙個無效的鏈結。硬連線指通過索引節點來進行連線。在 linu...

軟鏈結和硬鏈結

又叫符號鏈結,這個檔案包含了另乙個檔案的路徑名。可以是任意檔案或目錄,可以鏈結不同檔案系統的檔案。鏈結檔案甚至可以鏈結不存在的檔案,這就產生一般稱之為 斷鏈 的問題 或曰 現象 鏈結檔案甚至可以迴圈鏈結自己。類似於程式語言中的遞迴。軟連線的格式是 ln s 目標檔名 鏈結名 在對符號檔案進行讀或寫操...