本文主要介绍在linux系统中,软硬链接的区别
<1>现象和原理
我们先创建一个软链接,我们可以使用" ln -s + 需要链接的文件名 + 目标文件名称"
这个软链接创建的其实是一个文件,我们可以通过” ll -i“ 命令查看其inode编号。
下面,我们再创建一个硬链接,硬链接把软链接中的-s选项去掉即可
这里我们其实可以发现一些端倪,硬链接创建的并不是一个文件,因为两者的inode编号是相同的。所以当我们向file.c文件中写入一个内容时,其硬链接文件中也会出现相同的内容。这个硬链接是新的文件名和目标文件inode编号之间的映射关系。
而我们可以观察一下,可以发现属性行中有一个2,这个数字代表的就是硬链接数,这个属于文件的属性,所以inode中存在一个引用计数,计算硬链接数。当引用计数为零时,文件就被删除了。
软链接本质上是一个独立的文件,软链接内容存放的是目标文件的路径,它有点像我们windows系统上的快捷方式。
<2>应用的场景
软链接:建立对特定文件的链接,方便系统对特定文件直接访问。(这个文件可v)
硬链接:目录文件中的"." 和 "..",在刚创建的目录文件中,我们通常可以看见的是硬链接数一般都是2,这是因为目录文件本身算一个,进入该目录后的 "." 文件又算一个。如果目录文件中还包含子目录,那么在子目录文件中的" .. "又算一个硬链接。根据这个特性,我们可以得知,一个目录下的子目录个数就等于硬链接数 - 2。
需要特别注意的是,目录文件可以建立软链接,但用户自己不能建立硬链接,只有操作系统自己可以。因为硬链接可能导致环路问题。
以上就是全部内容,文中如有不对之处,还望各位大佬指正,谢谢!!!