Inode 索引节点
inode(index node)表中包含文件系统所有文件列表
一个节点(索引节点)是在一个表项,包含有关文件的信息(元数据),包括:
文件类型,权限,UID,GID
链接数(指向这个文件名路径名称个数)
该文件的大小和不同的时间戳
指向磁盘上文件的数据块指针
有关文件的其他数据
inode表结构
ls -i 可以查看节点编码
Inode table 节点表 是存放元数据的,每一个分区都有一个节点表。
在一个分区里一个文件只有一个节点号,就像人的身份证号
硬链接:
命令是ln 源文件 目录/链接文件名
理论知识:
连接数=文件名字的数量。
同一个文件在同一分区起多个名字,一个节点对应多个名字就相当于与名片。
不能跨分区创建,不能针对目录创建
rm命令递减计数的链接
文件要存在,至少有一个链接数
当链接数为零时,该文件被删除
实验:
下面的命令可以对比一下我创建了3个链接,290,节点号。3,表示几个链接。
连接数再多,它在硬盘的数据也不会增加,只是在目录里多加了几个记录而已。
软连接:
命令是ln -s 源文件 链接文件名
理论:
软连接通俗说就是快捷方式。
一个文件对应多个名字
可以跨分区创建,可以针对目录进行。
源文件一但删除快捷方式就失效了。
连接数不会增长
实验:
下图是跨分区创建
ln -s 原始文件的相对/绝对路径,(相对于软连接文件的路径) 软连接文件
下图所示;
rm命令:
链接数递减,从而释放的inode号可以被重用
把数据块放在空闲列表中
删除目录项
数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖。
如果mv命令的目标和源在相同的文件系统,作为mv命令
用新的文件名创建对应新的目录项
删除旧目录条目对应的旧的文件名
不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动
在CP的命令:
分配一个空闲的inode号,在inode表中生成新条目
在目录中创建一个目录项,将名称与inode编号关联
拷贝数据生成新的文件