> Linux教程 > linux基础 >

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.软链接可以对目录进行链接。



 

(责任编辑:IT)