小憶硬鏈結和軟鏈結

2021-09-30 15:40:10 字數 1465 閱讀 2865

1 概述

不論硬鏈結還是軟鏈結,它們都是檔案

2 硬鏈結

定義:每個檔案都是使用它的inode號碼來引用,檔名不過是想提高使用者體驗。由於檔名和inode號碼的分離(檔名被儲存在目錄中,而不是在inode節點中),這就使多個檔名來指向同乙個inode號碼變成了可能。所有檔案都至少被應硬鏈結一次而且可以不止一次。

特點:1)鏈結計數與所鏈結的檔案數成正相關,當鏈結計數遞減為0,檔案就會被刪除

2)附加的硬鏈結是常規檔案,只是引用宿主檔案的inode號碼,其餘和宿主檔案一般無二

語法:ln 檔名 鏈結名

注意,鏈結名事前不能有

案例:

[root@think water]# touch w

[root@think water]# cat > w

my name is think

[root@think water]# ll -i w

3496568 -rw-r--r-- 1 root root 17 09-25 14:48 w

[root@think water]# ln w w_hardlink

[root@think water]# ll -i

總計 8

3496568 -rw-r--r-- 2 root root 17 09-25 14:48 w

3496568 -rw-r--r-- 2 root root 17 09-25 14:48 w_hardlink

[root@think water]# cat w_hardlink

my name is think

限制:

1)因為共享乙個inode號碼,所以兩個檔案都必須在同乙個檔案系統上

2)無法建立到目錄的硬鏈結

3 軟鏈結

定義:軟鏈結讀取的是指向的檔案的內容

特點:1)軟鏈結是和原檔案不同的單獨檔案(inode號碼不同)

2)軟鏈結的檔案型別標誌是l

3)原檔案的許可權會控制對檔案的訪問,與軟鏈結的許可權風牛馬不相關

4)軟鏈結的大小總是等於原檔案的路徑名的字元總數

案例:

[root@think water]# touch w

[root@think water]# cat > w

my name is think

[root@think water]# ln -s w w_softlink

[root@think water]# ll -i

總計 4

3496568 -rw-r--r-- 1 root root 17 09-25 15:12 w

3496973 lrwxrwxrwx 1 root root 1 09-25 15:12 w_softlink -> w

[root@think water]# cat w_softlink

my name is think

軟鏈結和硬鏈結

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

硬鏈結和軟鏈結

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

硬鏈結和軟鏈結

在linux中除了程序之外都是檔案,目錄是特殊的檔案,目錄記錄了其他檔案的檔名。linux檔案被分為兩部分 元資料 檔案的屬性資料 和使用者資料 實際的資料 在linux中通過檔名開啟檔案。檢視檔案的inode號可以使用stat或者ls i命令。軟連線和硬鏈結 硬鏈結是兩個檔名指向同乙個inode,...