linux中文件索引节点知识

概念

索引节点

    inode表中包含了文件系统全部文件列表
    一个节点是在一个表项里,包含文件数据(元数据)。
        1.文件类型,权限,UID,GID
        2.连接数(指向这个文件名路径名称个数)
        3.文件的大小和时间戳
        4.指向磁盘上文件的指针
        5.有关文件的其余数据
        6.inode 索引节点编号 node

inode表结构

    linux中文件索引节点知识

  • 直接块指针:有12个块直接指向对应的数据单元,每一个数据单元能够容纳4K大小文件,全部直接块指针只能存储48k大小的文件。
  • 间接块指针:指向一个指针块,里面不放数据,大小为4k,每一个块占4个字节,全部有1024个指针,而后每一个指针指向真正的数据块。这样计算下来4*1024=4M。
  • 双重间接块指针:在间接块的基础上再增长一个指针块,这样计算下来有410241024=4G。

    inode号

    linux中文件索引节点知识
  系统中将目录下的文件名和文件inode号之间的映射做为目录的数据存放;人们经过文件名进行操做时,系统会经过对应路径目录的inode号找到目录的inode表数据,进而经过数据指针指向目录的数据,匹配文件名,获得文件的inode号;再到inode表中找到此文件的表项,再由文件数据指针指向真正的文件数据。
    1.系统中同一分区节点编号是惟一的。
    2.不一样分区的节点编号相同但不是同一个文件。
    3.每一个分区的节点编号都是有限的,若是节点编号用完会致使在此分区里不能建立新的文件,但系统中可能还有大量的磁盘空间,全部必定要注意是不是节点编号用尽。 linux

    linux中文件索引节点知识

文件操做与inode的关系

  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

相关文章
相关标签/搜索