欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 【Linux】inode 软硬链接

【Linux】inode 软硬链接

2025/2/27 12:11:03 来源:https://blog.csdn.net/Front123456/article/details/140418290  浏览:    关键词:【Linux】inode 软硬链接

文章目录

  • 一、inode
  • 二、硬链接
  • 三、软链接

一、inode

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

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

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

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

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

二、硬链接

方法:ln 源文件 目标文件
  一个文件名只能指向一个 inode 编号,但是 Linux 系统允许多个文件名指向同一个 inode ,通过 inode 链接来产生的新的文件名,而不是产生新的文件,称为硬链接。这就意味着,可以用不同的文件名访问同样的内容。删除一个文件名,不影响另一个文件名访问。因为 inode 信息中有一项叫做链接数,即指向该 inode 的文件总数,删除一个文件名时,链接数会减一。变为0时,表明没有文件指向这个 inode 编号,系统才会回收这个 inode 号码与文件数据块区,它的实现方式类似引用计数。
  默认创建的目录硬链接数是2,是因为目录名(假设为dir)和 inode 建立了映射关系,同时自己目录下的 " . " (表示当前目录,其实就是 dir,只不过名字不同罢了)也和 inode 建立了映射关系,所以硬链接数为2。当在这个 dir 目录下再创建一个新目录 dir1 时,dir 的硬链接数会加一,因为 dir1 目录下的 " . . " 会和上级目录 dir 映射的 inode 也建立一个映射,所以我们可以得出:目录的硬链接数 - 2 = 该目录下的其它目录数量
  注意不能对目录做硬链接,这是为了防止目录树循环:例如,如果目录A通过硬链接指向目录B,而目录B又通过硬链接指向目录A,这将导致无限循环。虽然 " . "" . . " 对目录形成了硬链接,但它们是文件系统自动维护的,并且有明确定义的行为,它们不会导致目录树中的循环问题。

三、软链接

方法:ln -s 源文件或目录 目标文件或目录
  软链接就是再创建一个独立的文件,即目标文件。它有自己独立的 inode ,它的内容是源文件的路径,类似于 Windows 的新建快捷方式,可以快速找到目标文件或目录。
  硬链接的源文件和目标文件具有相同的 inode 与文件块区,而软链接的源文件和目标文件都具有属于自己的 inode 与文件块区,它们的 inode 是独立的。当目标文件删除时,源文件的 inode 链接数不会因此发生变化。而目标文件依赖于源文件而存在,若删除了源文件,打开目标文件就会报错。

小结:

  • 硬链接数本质是一个引用计数
  • 存储文件元信息的区域就叫做 inode(索引节点)
  • 软链接是一个独立的文件,相当与创建了一个快捷方式
  • 硬链接就是同一文件的不同文件名,创建硬链接就是在指定目录下建立了不同文件名和指定inode的映射关系仅此而已

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词