【Linux】软链接与硬链接

在Linux操作系统下,我们知道 ls -l 命令 可以查看文件属性,如果再输入 ls-i 命令,我们会发现属性前面多了一串数字。这个数字就是 inode 链接-->快速认识文件描述符及其分配规则;你不懂的 inode 是什么?很明显,inode它没有重复的。那么它和我们说的软链接、硬链接有什么关系呢?下面一一解答。

软链接

软链接实际上就是一个文件,并且是一个独立的文件,它有自己独立的inode,可以帮助我们快速访问目标文件,可以理解为它里面放的内容是目标文件所在的路径以及名称。就像是Windows下的快捷方式一样。

硬链接

根据图我们可以发现,硬链接和目标文件共享同一个inode,硬链接没有独立的inode。其实建立一个硬链接就是在当前目录下建立了一对新的映射关系,而映射关系的右值就是我们要指向的文件的inode,左值就是新起的文件名。也可以理解为硬链接是目标文件的别名

每当我们创建1个硬链接,硬连接数就会增加1。硬链接数也就表示的就是指有多少个文件名字和该文件的inode产生了映射关系。

扫描二维码关注公众号,回复: 5024360 查看本文章

目录文件的硬链接

刚刚说了软链接、硬链接的基本介绍,那么我们查看新创建的空目录的硬连接数时发现居然是2,明明里边是空的呀,这又是怎么回事?

我们打开目录详细属性看一下:

不难看出,空目录dir下的 “ . ” 文件inode与dir的inode相同。由此可以推出,之所以空文件dir的硬链接数为2,是因为该目录里除了自己本身的名字“dir”与inode产生映射关系外,还有一个 “ . ”表示当前目录,也是指向它本身的,所以就有两个文件名与自己的inode产生了映射关系,所以该dir目录的硬链接数就是2。

如果再dir目录下再创建一个  dir1 ,此时我们发现硬链接数变成了 3 ,因为该dir目录下的映射关系除了上边谈到的 “dir” 和  “ . ”之外,又增加了dir1目录下指向上级目录dir的 “ .. ” 。所以硬链接数变成了3。

画个图帮助理解:

猜你喜欢

转载自blog.csdn.net/Miss_Monster/article/details/86497017