概念
硬鏈接:也叫鏈接,即文件的引用,與被引用文件指向同一個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.軟鏈接可以對目錄進行鏈接。