一. 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仍然存在,但是指向一个无效的链接。可以对目录,不同的文件系统 和 不存在的文件创建软链接由于软链接文件包含源文件的路径信息,所以当源文件移动后,系统就找不到了。而硬链接没有这个缺陷,想怎么移动就怎么移动;它要系统分配额外的空间用于建立新的索引节点和保存原文件路径