硬連結:簡單說,檔案名就是檔案的硬連結,硬連結就是給檔案起了個别名,對應的 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. 不能跨檔案系統建立硬連結