硬链接:通过索引节点(inode)来进行链接(创建了一个新的Directory项,但是不占用空间);
特点:
- 一个文件可以对应多个硬连接,且多个硬连接拥有相同的 inode 及 data block;硬连接可看作直接引用指针,不同的硬连接对应不同的引用名称。
- 只能对已存在的文件进行创建;inode 是随着文件的存在而存在,在同一个文件系统下是唯一的,每增加一个硬链接,链接数加1,每删除一个硬链接,链接数减1,当硬链接数量减到到0时,表明没有文件名指向这个inode,系统就会回收这个inode号码,以及其所对应block区域。
- 不能交叉文件系统进行硬链接的创建;因为不同文件系统inode 号是重新计算的,可能存在相同inode。
- 不能对目录进行创建,只可对文件创建;目录本身就是就是一个inode集合(自身也有inode),如果对其创建硬链接生成inode,则可能出现inode循环。
- 删除一个硬链接文件并不影响其他有相同 inode 号的文件。
使用硬链接访问文件的步骤:
- 首先找到目标文件最外层目录的inode(根目录的 inode 是系统已知的,inode 号是2),然后判断用户是否有权限访问此inode对应的 block。
- 如果有权限,则可以在此目录的 block 中查找下级目录和文件的inode。
- 如果查找到 inode 号,然后判断用户是否有权限访问此inode对应的 block。
- 重复上述步骤知道没有权限或者访问到目标inode的 block。
————————————————
软链接:通过文件路径(类似快捷方式)快速定位到软连接所指向的源文件实体(新建了一个文件,指向原文件,并且占用空间);
特点:
- 软链接有自己的文件属性及权限等;软链接会新建自己的 inode 信息和 block,只是在 block 中不存储实际文件数据,而存储的是源文件的文件名及 inode 号。
- 可对不存在的文件或目录创建软链接;
- 软链接可交叉文件系统;
- 软链接可对文件或目录创建;
- 创建软链接时,链接计数不会增加;
- 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。
使用软链接访问文件的步骤(前三步同硬链接):
- 首先找到目标文件最外层目录的inode(根目录的 inode 是系统已知的,inode 号是2),然后判断用户是否有权限访问此inode对应的 block。
- 如果有权限,则可以在此目录的 block 中查找下级目录和文件的inode。
- 如果查找到 inode 号,然后判断用户是否有权限访问此inode对应的 block。
- 重复上述步骤知道没有权限或者访问到目标文件内容。
- 从目标文件内容获取实际内容的inode,根据inode去访问对应block(可能不存在)。
2020-04-26
网友评论