硬连接和软连接

2020-04-26  本文已影响0人  周_0717

硬链接:通过索引节点(inode)来进行链接(创建了一个新的Directory项,但是不占用空间);
特点:

  1. 一个文件可以对应多个硬连接,且多个硬连接拥有相同的 inode 及 data block;硬连接可看作直接引用指针,不同的硬连接对应不同的引用名称。
  2. 只能对已存在的文件进行创建;inode 是随着文件的存在而存在,在同一个文件系统下是唯一的,每增加一个硬链接,链接数加1,每删除一个硬链接,链接数减1,当硬链接数量减到到0时,表明没有文件名指向这个inode,系统就会回收这个inode号码,以及其所对应block区域。
  3. 不能交叉文件系统进行硬链接的创建;因为不同文件系统inode 号是重新计算的,可能存在相同inode。
  4. 不能对目录进行创建,只可对文件创建;目录本身就是就是一个inode集合(自身也有inode),如果对其创建硬链接生成inode,则可能出现inode循环。
  5. 删除一个硬链接文件并不影响其他有相同 inode 号的文件。

使用硬链接访问文件的步骤:

  1. 首先找到目标文件最外层目录的inode(根目录的 inode 是系统已知的,inode 号是2),然后判断用户是否有权限访问此inode对应的 block。
  2. 如果有权限,则可以在此目录的 block 中查找下级目录和文件的inode。
  3. 如果查找到 inode 号,然后判断用户是否有权限访问此inode对应的 block。
  4. 重复上述步骤知道没有权限或者访问到目标inode的 block。

————————————————

软链接:通过文件路径(类似快捷方式)快速定位到软连接所指向的源文件实体(新建了一个文件,指向原文件,并且占用空间);
特点:

  1. 软链接有自己的文件属性及权限等;软链接会新建自己的 inode 信息和 block,只是在 block 中不存储实际文件数据,而存储的是源文件的文件名及 inode 号。
  2. 可对不存在的文件或目录创建软链接;
  3. 软链接可交叉文件系统;
  4. 软链接可对文件或目录创建;
  5. 创建软链接时,链接计数不会增加;
  6. 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。

使用软链接访问文件的步骤(前三步同硬链接):

  1. 首先找到目标文件最外层目录的inode(根目录的 inode 是系统已知的,inode 号是2),然后判断用户是否有权限访问此inode对应的 block。
  2. 如果有权限,则可以在此目录的 block 中查找下级目录和文件的inode。
  3. 如果查找到 inode 号,然后判断用户是否有权限访问此inode对应的 block。
  4. 重复上述步骤知道没有权限或者访问到目标文件内容。
  5. 从目标文件内容获取实际内容的inode,根据inode去访问对应block(可能不存在)。

2020-04-26

上一篇 下一篇

猜你喜欢

热点阅读