Inode 索引节点

 

inodeindex node)表中包含文件系统所有文件列表

一个节点(索引节点)是在一个表项,包含有关文件的信息(元数据),包括:

文件类型,权限,UIDGID

链接数(指向这个文件名路径名称个数)

该文件的大小和不同的时间戳

指向磁盘上文件的数据块指针

有关文件的其他数据

inode表结构

wKioL1eeCezStK0SAAIVl4UUmvc861.png-wh_50 

wKiom1eeCh_hkLPvAAFoLFRHDuQ734.png-wh_50 

ls -i 可以查看节点编码

spacer.gifwKiom1eeCp3wcVfRAAAY3AzkuY8103.png-wh_50

Inode table 节点表 是存放元数据的,每一个分区都有一个节点表。

在一个分区里一个文件只有一个节点号,就像人的×××号

 

spacer.gif硬链接:

命令是ln 源文件 目录/链接文件名

理论知识:

连接数=文件名字的数量。

同一个文件在同一分区起多个名字,一个节点对应多个名字就相当于与名片。

不能跨分区创建,不能针对目录创建

rm命令递减计数的链接

文件要存在,至少有一个链接数

当链接数为零时,该文件被删除

实验

wKioL1eeCq-w-lf-AAAFjwpetfA224.png-wh_50 

下面的命令可以对比一下我创建了3个链接,290,节点号。3,表示几个链接。

连接数再多,它在硬盘的数据也不会增加,只是在目录里多加了几个记录而已。

wKioL1eeCtPxSqGeAAAL487wwPE074.png-wh_50 

 

软连接:

命令是ln -s 源文件 链接文件名

理论:

软连接通俗说就是快捷方式。

一个文件对应多个名字

可以跨分区创建,可以针对目录进行。

源文件一但删除快捷方式就失效了。

连接数不会增长

 

实验:

wKiom1eeCvbSKSzJAAA3EVzpMCk863.png-wh_50 

下图是跨分区创建

wKioL1eeCxLyV0vXAAAp7FHajY0669.png-wh_50 

ln -s 原始文件的相对/绝对路径,(相对于软连接文件的路径) 软连接文件

下图所示;

wKiom1eeCz6ih3msAAAvok0NjPM427.png-wh_50 

 

rm命令:

链接数递减,从而释放的inode号可以被重用

把数据块放在空闲列表中

删除目录项

数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖。

 

如果mv命令的目标和源在相同的文件系统,作为mv命令

用新的文件名创建对应新的目录项

删除旧目录条目对应的旧的文件名

不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动

CP的命令:

分配一个空闲的inode号,在inode表中生成新条目

在目录中创建一个目录项,将名称与inode编号关联

拷贝数据生成新的文件