Linux軟連接與硬連接的區別

概念

硬鏈接:也叫鏈接,即文件的引用,與被引用文件指向同一個Inode。例如,文件系統目錄樹上存在一個文件,該文件指向一個唯一的Inode,爲該文件創建一個硬鏈接的話,那麼該硬鏈接也指向同一個Inode,相當於該文件有兩個名字,同時文件鏈接數增加1,可以使用任意一個名字訪問該文件。

軟鏈接:也叫符號鏈接,即文件的快捷方式。軟鏈接也是一種文件,同樣佔有一個Inode,創建軟鏈接不增加鏈接數.

創建與刪除軟鏈接、硬鏈接

首先看一個正常的文件:nfile.txt

1 # ls -li
2 total 20
3 48050 -rw-r--r-- 1 root root 20201 May 28 14:24 nfile.txt

可以看到nfile.txt的Inode編號爲48050,文件鏈接數爲1,文件大小爲20201.

爲nfile.txt文件創建一個硬鏈接:hardlink.txt

1 # ln nfile.txt hardlink.txt
2 [root@CLA-0(BCN_62) /root/horen]
3 # ls -li
4 total 40
5 48050 -rw-r--r-- 2 root root 20201 May 28 14:24 hardlink.txt
6 48050 -rw-r--r-- 2 root root 20201 May 28 14:24 nfile.txt

可以看到新創建的硬連接hardlink.txt的Inode編號同樣爲48050,文件大小同樣爲20201,但是文件鏈接數增加了1。這時這兩個文件同時指向硬盤裏的一個文件,刪除二者之一時,文件鏈接數會下降1。

爲nfile.txt創建一個軟鏈接:softlink.txt

1 # ln -s nfile.txt softlink.txt
2 [root@CLA-0(BCN_62) /root/horen]
3 # ls -li
4 total 40
5 48050 -rw-r--r-- 2 root root 20201 May 28 14:24 hardlink.txt
6 48050 -rw-r--r-- 2 root root 20201 May 28 14:24 nfile.txt
7 48052 lrwxrwxrwx 1 root root     9 May 28 14:51 softlink.txt -> nfile.txt

可以看到新創建的軟鏈接softlink.txt的Inode編號爲48052,文件鏈接數爲1,文件大小爲9。這時這個軟鏈接作爲nfile.txt的一個快捷方式存在,可以通過softlink.txt訪問nfile.txt。

刪除硬鏈接:hardlink.txt

1 # rm hardlink.txt
2 [root@CLA-0(BCN_62) /root/horen]
3 # ls -li
4 total 20
5 48050 -rw-r--r-- 1 root root 20201 May 28 14:24 nfile.txt
6 48052 lrwxrwxrwx 1 root root     9 May 28 14:51 softlink.txt -> nfile.txt

可以看到,文件nfile.txt的鏈接數下降爲1.

刪除軟鏈接:softlink.txt

1 # rm softlink.txt
2 [root@CLA-0(BCN_62) /root/horen]
3 # ls -li
4 total 20
5 48050 -rw-r--r-- 1 root root 20201 May 28 14:24 nfile.txt

硬鏈接與軟鏈接的區別

1.軟鏈接可以跨文件系統,硬鏈接不可以;

2.多個硬鏈接佔用同一個Inode編號,多個硬鏈接與源文件不分彼此,修改任何一個其他文件都會同步修改。軟鏈接佔用獨立的Inode編號;

3.軟鏈接可以對一個不存在的文件名進行鏈接;

4.軟鏈接可以對目錄進行鏈接。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章