Linux 下Inode节点,软连接与硬连接

一. Inode节点

扇区

文件储存在硬盘上,硬盘上最小的储存单位叫做’扇区’(一个磁道上有很多扇区,一个柱面上有很多磁道,一个硬盘上有很多柱面),每个扇区储存512字节(不同硬盘可能不一定相同),相当于是0.5KB.

块(block)

操作系统在读取硬盘的时候,不会一个个扇区的读取,这样的效率太低,而是一次性连续读取多个扇区,即一次读取一个’块’.这种由多个扇区组成的块,就是文件存取的最小单元.块的大小,最常见的是4KB,即连续8个扇区组成一个block.(块的大小的取值也是有权衡的,太大导致内部碎片太多,太小的话导致读取效率低下)

硬盘格式化时,操作系统自动将硬盘分成两个区:
  • 数据区
  • Inode区:存放包含inode所包含的所有信息。 可以用df命令查看每个硬盘分区的inode数量和已经使用的数量
inode的内容

inode包含文件的元信息,具体来说有以下内容:

  • 文件的字节数
  • 设备ID(储存文件的设备ID)
  • 文件拥有者的User ID
  • 文件的Group ID
  • 文件的读,写,执行权限
  • 额外的系统和用户标志位:限制文件的使用和修改来保护文件
  • 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间.
  • 链接数:有多少文件名指向这个inode(硬连接)
  • 文件块指针:指向文件数据block的位置
linux系统中,查找文件不是用文件名,而是使用inode编号来识别文件

查找文件三步骤:

  • 找到文件名对应的inode编号
  • 通过inode编号获取inode信息
  • 根据inode信息找到文件数据所在的block读取数据

在这里插入图片描述

二. 硬链接

  • A和B都是硬链接(A,B都是文件名),则A的目录项中的Inode节点号与B中目录项的Inode节点号相同。 即一个Inode节点对应两个不同的文件名,两个文件名指向同一个文件
  • 如果删除了一个文件,对另一个没有影响,Inode节点上的链接数减一
  • 直到链接数为零,inode节点和对应的数据块才被回收。
  • 文件和文件名不同。rm A删除的是A这个文件名,而对A对应的数据块(文件)只有在链接数减少为0时才被系统回收
  • 不能对目录,不同的文件系统 和 不存在的文件创建硬链接

三. 软链接

  • A和B目录项中的inode节点号不一样,A和B指向不同的inode号,继而指向不同的数据块
  • A的数据块只是存放B的路径名(根据这个找到B的目录项)
  • A和·B之间是主从关系。
  • 如果B被删除了,A仍然存在,但是指向一个无效的链接。
  • 可以对目录,不同的文件系统 和 不存在的文件创建软链接
  • 由于软链接文件包含源文件的路径信息,所以当源文件移动后,系统就找不到了。而硬链接没有这个缺陷,想怎么移动就怎么移动;它要系统分配额外的空间用于建立新的索引节点和保存原文件路径
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值