天天看點

硬連結與軟連接配接

硬連結:簡單說,檔案名就是檔案的硬連結,硬連結就是給檔案起了個别名,對應的 inode 與原檔案一樣

軟連結:簡單說,類似于快捷方式,它有自己單獨的 inode,指向了被連結的檔案(跟路徑關聯)

畫個圖了解下:

硬連結與軟連接配接

實驗驗證:

建立一個檔案,text.txt

# cd test

# touch test.txt

# ls -al

硬連結與軟連接配接

可以看到,硬連結數為 1

# ln test.txt hard_link

# ls -al

硬連結與軟連接配接

可以看出,在建立了 hard_link 後,test.txt 硬連結數變為 2 了,

而 hard_link 指向的檔案 inode 和 test.txt 一樣,是以也顯示 2 個硬連結數

我們再建立一個軟連結:

# ln -s test.txt soft_link

# ls -al

硬連結與軟連接配接

可以看出,軟連結自身的硬連結數為 1,原來的 test.txt 和 hard_link 硬連結數依然為 2

軟連結的 inode 和硬連結的 inode 并不是一個

下面我們删除 test.txt:

# rm -f test.txt

# ls -al

硬連結與軟連接配接

可以看到,hard_link 硬連結數變為 1 了,而 soft_link 已經失效,因為它指向的路徑不存在了

我們編輯下 hard_link

# echo "hello man" > hard_link

下面,恢複 test.txt

# ln hard_link test.txt

# ls -al

硬連結與軟連接配接

可以看到,軟連結恢複正常了

再看看内容

# cat soft_link
硬連結與軟連接配接

證明,hard_link 與 test.txt 确實是同一個檔案

隻有當一個檔案的硬連結數為 0,它才會被删除

附:硬連結的限制

1.  不允許普通使用者給目錄建立硬連結 (可能把目錄樹變成環形圖,進而無法定位一個檔案)

2.  不能跨檔案系統建立硬連結

繼續閱讀