inode表中包含了文件系统全部文件列表
一个节点是在一个表项里,包含文件数据(元数据)。
1.文件类型,权限,UID,GID
2.连接数(指向这个文件名路径名称个数)
3.文件的大小和时间戳
4.指向磁盘上文件的指针
5.有关文件的其余数据
6.inode 索引节点编号 node
系统中将目录下的文件名和文件inode号之间的映射做为目录的数据存放;人们经过文件名进行操做时,系统会经过对应路径目录的inode号找到目录的inode表数据,进而经过数据指针指向目录的数据,匹配文件名,获得文件的inode号;再到inode表中找到此文件的表项,再由文件数据指针指向真正的文件数据。
1.系统中同一分区节点编号是惟一的。
2.不一样分区的节点编号相同但不是同一个文件。
3.每一个分区的节点编号都是有限的,若是节点编号用完会致使在此分区里不能建立新的文件,但系统中可能还有大量的磁盘空间,全部必定要注意是不是节点编号用尽。 linux
1.cp命令
系统分配一个空闲的节点编号,在节点表中生成一条新的信息,在目录中建立一个目录项,将名称与inode编号关联;拷贝数据生成新的文件。ide
2.rm命令
首先文件有没有连接数,当连接数减到零后,系统释放节点编号,并删除目录表信息和对应的指针,但数据块的数据不会被删除,只有系统从新启用此数据块时数据才会被覆盖。
mv命令
若是目标和源文件都存在相同一个分区里,则删除旧的目录信息,建立新的信息,其余的没有改变,若是目标和源文件在不一样的分区,mv至关于cp和rm。 指针
1.硬连接
语法:ln filename [linkname ]
a. 硬连接的新建是为同一inode号添加文件名 (本质是在目录条目里为inode号增添一个文件名映射,指向同一个inode表数据,所以数据相同)
b. 新建硬连接,连接数增长(连接数实质就是 inode号 对应文件名的个数;当 inode 号映射的文件名不存在时,此 inode号就会被系统回收重用)
c. 硬连接文件和原文件之间数据共享,但又互相独立;(修改其中任意一个文件的数据,其余的文件数据都会改变,删除硬连接文件则对应的连接数会减小,若是是最后一个连接数则直接删除文件。)
d. 不能跨分区和跨设备建立硬连接
e. 不能对目录建立硬连接 (目录最多有三个硬连接,目录自己,目录下的 . ,子目录下的 ..)
2.软连接
语法:ln -s filename [linkname ]
a. 软连接实质是新建一个文件快捷方式,存放的数据是原文件的文件名,文件数据大小是原文件名字的字节数;访问时经过文件名指向到原文件数据
b. 软连接支持跨分区
c. 能够建立目录软链接
d. 软连接文件依赖于原始文件 ;删除原始文件,软连接文件会失效 blog