目录
一.简单的理解inode
我们知道在Linux系统中,一切皆文件,那么为了区分这些文件,以及标注这些文件的一些信息,例如文件的创始者,创建日期等等,我们就要使用一块特殊的内存来存放这些信息,而存储这些信息的区域就被称为inode,中文译名为“索引节点”。也许大家看到这里还是不太明白什么是inode,为了方便理解,我们可以将系统的内存理解为一个数组,而这个数组中存放的元素就是一个个的文件,而数组的下标就是inode,所以只要我们知道了inode就可以找到它所对应的文件。
二.什么是软链接
1.抽象的理解软链接
我们可以将软链接理解为windows系统下的快捷方式,例如当我们在windows系统下安装好某一个软件时,这个软件的本体以及其他相关的配置文件都是存放在某一个磁盘当中,而为了我们使用方便,一般都会在桌面生成一个这个软件的快捷方式,只要通过点击这个快捷方式就可以迅速的打开这个软件了。我们将快捷方式称为文件A,将这个被指向的软件称为文件B。
此时文件A就是文件B的软链接,并且文件A的inode节点号和文件B的inode节点号不相同,A和B指向的是两个不同的inode,继而指向两块不同的数据块。A的数据块中存放的只是B的路径名(可以根据这个找到B的目录项)。
软链接又称之为符号连接,实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
2.创建软链接的方式
我们可以通过以下命令来创建软链接:
ln -s 源文件名 链接名
3.软链接的特性
使用软链接时需要注意以下几点:
- 软链接有自己的文件属性和权限
- 可对不存在的源文件或目录创建软链接
- 软链接可交叉文件系统
- 软链接可对文件或目录创建
- 创建软链接时,链接计数 i_nlink 不会增加
- 删除软链接并不影响被指向的文件,但若被指向的源文件被删除,则相关软连接被称为死链接或悬挂的软链接(可以类比windows系统上的快捷方式)
4.软链接的作用
类似用windows系统下的快捷方式
三.什么是硬链接
1.抽象的理解硬链接
我们可以将硬链接理解为共享文件, 例如当在某个大型项目中,可能需要多个人同时对同一份文件进行修改等操作,那么此时就可以将该文件设置为共享文件,每个人对这个文件所做的任何操作都会实时的进行同步。我们发现虽然每个人手中的电脑都会有这个文件,即同一时刻这个文件可能会出现在多个不同的地方,但他们的源是一样的,每个人对这个文件所做的任何操作都会实时的进行同步,而硬链接与这相似。
(我们也可以将硬链接理解为某一个实际文件的一个别名)
假设文件A是文件B的硬链接,则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指向同一个文件,A和B对文件系统来说是完全平等的。如果删除了其中一个,对另外一个没有影响。每增加一个文件名,inode节点上的链接数增加一,每删除一个对应的文件名,inode节点上的链接数减一,直到为0,inode节点和对应的数据块被回收。
2.创建硬链接的方式
我们可以通过以下命令来创建硬链接:
ln 源文件名 链接名
3.硬链接的特性
使用硬链接时需要注意以下几点:
- 不能对目录创建硬链接,如果针对文件做硬连接,软连接就相当于我们win中的快捷方式即如果你软连接一个目录只是一个目录的快捷方式到指定位置,操作系统找这个快捷方式会直接找到真实目录下的文件。但是硬连接的话,相当于镜像的方式,你创建一个目录的硬连接之后,操作系统需要把这个目录下所有的文件都要做一次硬连接(复制一份过去),这样操作系统在访问这个链接的时候要不断去遍历,大大增加复杂度,而且很容易进入死循环。现在linux没有很好支持这个 所以 不支持。
- 不能交叉文件系统进行硬链接的创建,inode节点号是随着文件的存在而存在,因此只有当文件存在时才可创建硬链接,即当 inode 存在且链接计数器(link count)不为 0 时。inode 号仅在各文件系统下是唯一的,当 Linux 挂载多个文件系统后将出现 inode 号重复的现象,因此硬链接创建时不可跨文件系统。
- 硬链接的文件有相同的 inode 及 数据块
- 只能对已存在的文件进行创建
- 删除一个硬链接文件并不影响其他有相同 inode 号的文件,只有inode节点上的链接数为0时,inode节点和对应的数据块才会被回收。
4.硬链接的作用
硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。只删除一个连接并不影响节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
参考文章:
https://blog.youkuaiyun.com/yangxjsun/article/details/79681229
https://blog.youkuaiyun.com/mahao1107/article/details/46851969