【Linux】inode 软硬链接和动静态库

一、inode

  由之前的学习,我们知道文件=内容+属性。 要理解 inode 是什么,首先得知道文件的内容和属性是分开存储的。文件数据(内容)储存在硬盘的数据块中,那么还得必须找到一个区域来存储文件的元信息(属性),这种存储文件元信息的区域就叫做 inode(索引节点)

inode 通常包含的一些关键信息:

  • 文件的大小(字节数)
  • 文件拥有者和所属组 id
  • 文件的类型,及其读写执行权限
  • 指向数据块的指针,找到数据块的位置
  • 硬链接数,指向该 inode 的硬链接数量,当计数变为0时,文件数据被释放
  • 文件的时间戳,ctime 指 inode 上一次修改时间,mtime 指文件内容上一次修改时间,atime 指文件最后一次被访问的时间

  我们经常通过文件名来对文件进行操作,但真正找到磁盘上文件的并不是文件名,而是 inode, 在 linux 中可以让多个文件名对应于同一个 inode。下面是一些查看 inode 相关的命令

  • ls -i 命令:查看文件对应的 inode 号码
  • stat 命令:查看某个文件的 inode 信息例,是 ls 命令的增强版,提供了更详尽的文件信息
  • df 命令:查看每个硬盘分区的 inode 总数和已经使用的数量

二、软硬链接

2.1 硬链接

方法:ln 源文件 目标文件
  一个文件名只能指向一个 inode 编号,但是 Linux 系统允许多个文件名指向同一个 inode ,通过 inode 链接来产生的新的文件名,而不是产生新的文件,称为硬链接。这就意味着,可以用不同的文件名访问同样的内容。删除一个文件名,不影响另一个文件名访问。因为 inode 信息中有一项叫做链接数,即指向该 inode 的文件总数,删除一个文件名时,链接数会减一。变为 0 时,表明没有文件指向这个 inode 编号,系统才会回收这个 inode 号码与文件数据块区,它的实现方式类似引用计数。
  默认创建的目录硬链接数是2,是因为目录名(假设为dir)和 inode 建立

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杰瑞的猫^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值