为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 与软链接。链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。若一个 inode 号对应多个文件名,则称这些文件为硬链接。换言之,硬链接就是同一个文件使用了多个别名。链接可由命令 ln 创建。

 

文字描述:

描述Linux下软链接和硬链接的区别

在Linux系统中,链接分为两种,一种是硬链接(hard link),另一种称为符号链接或软链接(soft link 或symbolic Link)。

①创建:

默认不带参数的情况下,ln创建的是硬链接,带-s参数的ln命令创建的是软链接。

ln命令不能对目录创建硬链接,但可以创建软链接。对目录的软链接会经常使用到。

可对不存在的文件或目录创建软链接,不能创建硬链接。

②关于inode:

硬链接文件与源文件的inode节点号相同,而软链接文件的inode节点号,与源文件不同,

③删除:

删除软链接文件,对源文件和硬链接文件无任何影响。

删除文件的硬链接文件,对源文件及软链接文件无任何影响。

删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状)。

同时删除源文件及其硬链接文件,整个文件才会被真正的删除。

④很多硬件设备的快照功能,使用的就是类似硬链接的原理。

⑤软链接可以跨文件系统,硬链接不可以跨文件系统。

 

验证:

①创建链接

[root@luc ~]# mkdir test

[root@luc ~]# cd test/

存在文件

[root@luc test]# echo source111 >> test_link

[root@luc test]# ln -s test_link link_soft

[root@luc test]# ln test_link link_hard

存在目录

 

不存在文件创建软硬链接

 

②关于inode

 

源文件和硬链接的inode号是一样的都是16784637

和软件链接的不一样

③删除

删除软链接和硬链接,对源文件没有任何影响

 

删除源文件,软链接失效

 

补充:

修改任何链接都会修改源文件