inode介绍 & 硬链接与软链接异同

159 阅读2分钟

本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

接上篇硬链接与软链接介绍

inode

文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。

操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。

文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。

Inode相当于文件指针,指向了物理硬盘的一个区块。事实上文件系统会维护一个引用计数,只要有文件指向这个区块,它就不会从硬盘上消失.

inode中的内容:

  • 文件的字节数,块数

  • 文件拥有者的User ID

  • 文件的Group ID

  • 文件的读、写、执行权限

  • 文件的时间戳,共有三个:1. ctime指inode上一次变动的时间。2. mtime指文件内容上一次 变动的时间。3. atime指文件上一次打开的时间。

  • 链接数,即有多少文件名指向这个inode

  • 文件数据block的位置

  • inode编号(对应数组的下标)

inode编号是很重要的,当系统在找一个文件时,步骤如下:

1.通过文件名先找到文件的inode编号

2.通过inode编号找到文件inode信息

3.通过inode信息中的block指针找到文件内容。

硬链接与软链接的区别和联系

区别

s-2.png

联系

s-1.png

总结

  1. 当源文件的软连接和硬链接同时存在时,删除软连接对源文件和硬链接无影响;
  2. 当源文件的软连接和硬链接同时存在时,删除硬连接对源文件和硬链接无影响;
  3. 对于目录,不可以创建硬链接,但可以创建软连接;
  4. 对于目录的软链接是生产场景运维中常用的技巧。