码迷,mamicode.com
首页 > 系统相关 > 详细

linux中文件索引节点知识

时间:2019-05-16 09:23:45      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:磁盘   mic   结构   重用   相同   快捷   覆盖   行操作   通过   

概念

索引节点

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

inode表结构

    技术图片

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

    inode号

    技术图片
  系统中将目录下的文件名和文件inode号之间的映射作为目录的数据存放;人们通过文件名进行操作时,系统会通过对应路径目录的inode号找到目录的inode表数据,进而通过数据指针指向目录的数据,匹配文件名,得到文件的inode号;再到inode表中找到此文件的表项,再由文件数据指针指向真正的文件数据。
    1.系统中同一分区节点编号是唯一的。
    2.不同分区的节点编号相同但不是同一个文件。
    3.每个分区的节点编号都是有限的,如果节点编号用完会导致在此分区里不能创建新的文件,但系统中可能还有大量的磁盘空间,所有一定要注意是否是节点编号用尽。

    技术图片

文件操作与inode的关系

  1.cp命令
    系统分配一个空闲的节点编号,在节点表中生成一条新的信息,在目录中创建一个目录项,将名称与inode编号关联;拷贝数据生成新的文件。

  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. 软链接文件依赖于原始文件 ;删除原始文件,软链接文件会失效

linux中文件索引节点知识

标签:磁盘   mic   结构   重用   相同   快捷   覆盖   行操作   通过   

原文地址:https://blog.51cto.com/13449039/2395301

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!