磁盘中最小的存储单位是“扇区”,操作系统中文件最小的存储单位是“块”,一个“块”由连续的8个“扇区”组成,一个文件可以由多个“块”组成,而这些“块”并不一定是连续的。操作系统要读取一个文件时,是如何找到这些“块”的呢?这就需要一种映射关系,方便系统通过文件名找到对应的“块”,inode就用来维持这种映射关系的。

inode是index node,也就是“索引节点”,每一个文件都有对应的inode,inode保存的是文件的元信息,操作系统就是通过inode来管理文件的。

inode包含的元信息如下:

1)文件的字节数

2)文件拥有者的 User ID

3)文件的 Group ID

4)文件的读、写、执行权限

5)文件的时间戳,共有三个:ctime指inode最近变动的时间,mtime指文件内容最近变动的时间,atime指文件最近打开的时间

6)链接数,即有多少文件名指向这个inode

7)文件数据block的位置

注意:inode中不包含文件名。

linux中使用stat命令查看文件的inode信息:

使用 df -i 查看每个磁盘分区的inode总数和已经使用量:

对磁盘“格式化”后,操作系统将磁盘分成两个区域,一个是数据区,存放文件数据,一个是inode区(inode table),存储inode数据。

每个inode都有唯一的编号,操作系统就是根据编号来操作不同的文件。文件名可以说是inode编号的别名,实际上,系统通过文件名打开文件时,先找到文件名对应的inode编号,然后获取inode信息,根据inode信息获取文件对应的block,最后从block中读取数据。

使用 ls -i 获取文件名对应的inode编号:

目录(directory)也是一种文件。目录文件的内容是一系列的目录项列表,每个目录项由两部分组成:文件名,文件名对应的inode编号。

如果目录文件只有读权限(r),那就只能获取文件名,无法获取文件的元信息,元信息存储在inode中,要读取inode中的内容,文件目录需要拥有执行权限(x)。

在linux中,允许多个文件名指向同一个inode编号,对文件内容的修改会影响到所有的文件名,inode中的链接数,就是指向该文件的文件名的数量,当链接数为0时,系统会回收该文件的inode编号和对应的block区域。

如果删除一个文件名,不影响另一个文件名的访问,这种情况是“硬链接”。

创建“硬链接”命令:

ln src_file target_file

注意:创建目录文件时,默认生成两个目录项,“.”(当前目录文件的inode编号)和“..”(当前目录的父目录文件的inode编号),所以每个目录文件的硬链接数大于等于 2。

还有一种情况是,文件A和文件B的inode编号不一样,但是文件A的内容是文件B的路径,也就是文件A指向了文件B的文件名。读取文件A时,会自动导向文件B。文件A就称为文件B的“软链接”。

创建“软链接”命令:

ls -s src_file target_file

inode和文件名分离的设计,会出现以下情况:

1)如果文件名包含了特殊字符,导致无法删除,这时可以直接删除inode节点,就可以删除文件。

2)移动文件或重命名时,只是改变文件名,不影响inode编号。

3)系统操作文件时,只识别该文件的inode编号,所以,系统无法通过inode来获取文件名。这样的好处是,在不用重启的情况下就可以更新文件,文件名就指向了一个新的inode,旧的inode会被回收。

Linux文件系统中的inode相关推荐

  1. Linux文件系统中的inode节点详细介绍

    一.inode是什么? 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统 ...

  2. 以下关于linux文件系统中inode,linux文件系统—inode及相关概念.docx

    linux文件系统-inode及相关概念 linux文件系统-inode及相关概念 博客分类: /category/156693Linux/blogs/tag/LinuxLinux/blogs/tag ...

  3. Linux文件系统基础之inode和dentry

    inode和dentry在VFS和实体的文件系统(ext2.ext3等)中都是比较重要的概念.首先看一下虚拟文件系统的标准定义:虚拟文件系统(英语:Virtual file system,缩写为VFS ...

  4. Linux文件系统中的链接

    inode 在讨论Linux系统的链接之前,不得不先说下inode.Linux文件系统中的每一个对象都有唯一的inode索引,每一个inode号和文件系统的一个对象一一对应,要查看文件或目录的inod ...

  5. linux每个文件标识,Linux文件系统中每个文件用____来标识。

    Linux文件系统中每个文件用____来标识. 更多相关问题 [问答题] 分析冶炼终点硫高的原因及处理措施? [单选] 转炉炼钢的主要金属料是指() [问答题] 复合脱氧剂的优点? [问答题] 什么是 ...

  6. 深入理解linux文件系统( 理解inode与block,理解硬链接软链接,掌握恢复误删文件及其分析方法,掌握用户日志及其查询命令 )

    文章目录 深入理解linux文件系统 前言 inode与block详解 inode和bolck概述 1:数据(block)块: 2:元信息 : inode(索引节点) inodu的内容 Linux系统 ...

  7. 认识Linux系统中的inode,硬链接和软链接

    在学习和创建软链接遇到了一点问题,总结一下: 在当前文件夹下面建立了两个临时文件夹tempdir1和tempdir2,然后在tempdir2里面创建了一个hello文件,然后用指令ln -s temp ...

  8. linux文件系统中文件基本权限,Linux文件权限基本属性图文详解

    [概述] 在 Linux 系统中,不同的用户处于不同的地位,拥有不同的权限,为保护系统安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定. Linux 系统的每一个文 ...

  9. Linux文件系统中错误的是,linux – ext4文件系统损坏 – 可能是硬件错误?

    我打开电脑约半小时后,我在dmesg中收到这些错误: [ 1355.677957] EXT4-fs error (device sda2): htree_dirblock_to_tree: inode ...

最新文章

  1. linux的网络地址配置,教你如何完成Linux网络地址配置
  2. 面试官:你来谈谈数据库优化的几个阶段?
  3. echarts legend颜色_echarts数据可视化图表(二):双柱状图
  4. 教你从0到1搭建秒杀系统-抢购接口隐藏与单用户限制频率
  5. 当 RocketMQ 遇上 Serverless,会碰撞出怎样的火花?
  6. 几枝浏览器插件介绍,一个充满了中国风的浏览器插件
  7. #华为云·寻找黑马程序员#微服务-你真的懂 Yaml 吗?
  8. STM32F10x随笔(gcc+scons)
  9. APP自动化测试系列之adb连接真机和模拟器
  10. R爬虫可视化第五季-图解欧洲足球五大联赛
  11. 兄弟7895dw粉盒清零_兄弟打印机2260D粉盒怎么清零?
  12. Excel宏编程,给出2列进行去重合并
  13. 厚积‘博’发,成就卓越IT人生!
  14. 【TA-霜狼_may-《百人计划》】图形3.3 曲面细分与几何着色器 大规模草渲染
  15. html圆柱体制作方法,如何制作圆柱体
  16. 《 ERP高级计划》书的解读-APS算法分析之七分解技术(DT)(蔡颖)(转)
  17. java计算机毕业设计重庆旅游景点源码+数据库+系统+lw文档
  18. 爬取王者荣耀高清皮肤
  19. python最小二乘拟合圆_点云球面最小二乘拟合的python实现
  20. CentOS 7 解决网络不可用问题

热门文章

  1. 关于提高网站性能的几点建议(二)
  2. Spring,FetchType.LAZY和FetchType.EAGER什么区别?
  3. Data Minig --- Decision Tree ID3 C4.5 Gini Index
  4. .net生成缩略图,支持等比例缩放,加水印
  5. struts2 s:property/标签的使用--输出时间格式转换
  6. 个人永久性免费-Excel催化剂插件功能修复与更新汇总篇之七
  7. 别说我不懂排序!几种常见排序算法(一)
  8. 【bzoj4321】queue2 dp
  9. Flex Develpment中右边的框的linkWithEdit
  10. 应用高斯分布来解决异常检测问题(一)