linux中的inode

理解inode

inode是文件存储,文件存储在营盘山,最小的存储单位叫扇区。每个扇区的存储512字节。

操作系统读取硬盘的时候,不会一个一个扇区的读取,这样效率太低。而是一次性读取多个扇区,一次性读取一个块。也就是8个连续的扇区组成一个block。

文件存储在块中,但是我们还需要找一个存储元信息的区域叫做inode。中文译名“索引节点”。

每个文件都有对应的索引节点。

inode的内容

在inode的元信息中,保存了以下内容:

* 文件的字节数

* 文件拥有者的User ID

* 文件Group ID

* 文件的读写执行权限

* 文件的时间戳,ctime上次变动的时间,mtime文件内容上次变动的时间,atime,文件上次访问的时间。

* 链接数,就是有多少文件名指向这个inode

* 我呢间数据block的位置。

我们可以使用以下命令尽心查看inode的信息

stat demo.txt

inode的大小

在inode也是会消耗磁盘的空间,所以格式化的时候,操作系统会将磁盘分为两个部分,一个是数据存放的位置就是block;另一个就是inode区,用来存放inode的信息。

每个inode一般是128字节或者是256字节。inode节点的总数是在格式化的时候给定你的。一般是每1kb或每2kb就设置一个inode。那么inode table就会占用磁盘的12.8%。

我们可以使用以下命令查看:

df -i

查看每个inode节点的大小用命令

dumpe2fs -h /dev/hda |grep "Inode size"

每个文件都需要有inode,因此有可能出现inode已经用完,但是硬盘没有存满。这个时候就没有办法创建新的文件。

inode号码

每个inode都有一个号码,操作系统用inode号码来识别不同的文件。

需要注意的是,在linux系统内部,使用的就是inode号码来识别文件,文件名只是便于识别的别称。

我们使用以下命令查看文件inode号

ls -i demo.txt

目录文件

linux系统中,目录也是一种文件,打开目录其实就是打开目录文件。

目录文件结构非常简单,只有两部分组成一个是inode号,一个是文件的名称。文件的元信息都存储在inode中。

硬链接

一般情况下,文件名合inode号码是一一对应的,每个inode号码都是对应着一个文件名称。但是在linux中允许多个文件指向同一个inode号码。这就意味着我们可以通过不同的文件名访问相同的内容。修改一个文件,影响所有的文件,但是删除文件只会影响自己本身的访问,不影响其他文件名的访问。这种情况叫做“硬链接(hard link)”。

创建硬链接命令:

ln 源文件 目标文件

任何一个目录的硬链接总数等于,2加上他子目录数(包含隐藏目录)。

软连接

文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B。因此,无论打开哪一个文件,最终读取的都是文件B。这时,文件A就称为文件B的”软链接”(soft link)或者”符号链接(symbolic link)。

创建命令为:

ln -s 源文件 目标文件或目录

inode的特殊作用

由于inode号码和文件名称的分离。导致一些linux系统特有的现象。

1. 有时文件包含特殊字符无法正常删除,这个时候删除inode节点即可。

2. 移动或者重命名文件,不会影响inode号码。

3. 打开一个文件以后,系统使用inode号码识别文件,不用考虑文件名。

希望与广大网友互动??

点此进行留言吧!

mysql inode_Linux中inode的大小、作用讲述相关推荐

  1. 如何修改mysql表中列的大小?

    本文翻译自:How can I modify the size of column in a mysql table? I have created a table and accidentally ...

  2. mysql数据库的事物日志在哪里_mysql数据库中事务日志的作用

    mysql数据库中事务日志的作用 发布时间:2020-06-28 18:13:39 来源:亿速云 阅读:98 作者:Leah 这篇文章将为大家详细讲解有关mysql数据库中事务日志的作用,文章内容质量 ...

  3. mysql中对比月_详解Mysql中日期比较大小的方法

    假如有个表product有个字段add_time,它的数据类型为datetime,有人可能会这样写sql: 代码如下 select * from product where add_time = '2 ...

  4. mysql 日期比较_详解Mysql中日期比较大小的方法

    假如有个表product有个字段add_time,它的数据类型为datetime,有人可能会这样写sql: 代码如下 select * from product where add_time = '2 ...

  5. mysql日期比较大小 方式_mysql中日期比较大小方法详解

    在mysql中日期比较有许多的函数,下面我来给大家总结一下常用的mysql中日期比较大小有需要了解的朋友可进入参考参考,假如有个表product有个字段add_time,它的数据类型为datetime ...

  6. 详解Mysql中日期比较大小的方法

    假如有个表product有个字段add_time,它的数据类型为datetime,有人可能会这样写sql: 代码如下 select * from product where add_time = '2 ...

  7. mysql init file_mysql中参数--init-file的作用是什么呢?

    需求描述: 今天在修改测试环境mysql数据库中root用户密码的时候,用到了--init-file参数, 所以,就在这里说下该参数的作用. 概念解释: 参数:--init-file=file_nam ...

  8. MySQL数据类型中DECIMAL的作用和用法

    在MySQL数据类型中,例如INT,FLOAT,DOUBLE,CHAR,DECIMAL等,它们都有各自的作用,下面我们就主要来介绍一下MySQL数据类型中的DECIMAL类型的作用和用法. 一般赋予浮 ...

  9. mysql中 !40000 DROP DATABASE IF EXISTS `top_server` 这中注释有什么作用?

    需求描述: 今天在进行mysqldump实验,使用--add-drop-databases参数,于是在生成的SQL文件中,就出现了. /*!40000 DROP DATABASE IF EXISTS ...

最新文章

  1. Redis中哈希hash数据类型(增加修改(设置单一属性、设置多个属性)、获取(获取键所有属性、获取单一属性值、获取多个属性值)、删除、使用hash可能出现的问题)
  2. mysqlevent每天,附答案
  3. 针对校园某服务器的一次渗透测试
  4. 深入理解MyBatis的原理(四):映射器的用法
  5. python 中cPickle学习二
  6. 面试官Diss我能力不如工作3年
  7. 小玉买文具(洛谷-P1421)
  8. nmap查看开放端口以及使用的协议
  9. 机器学习开放数据集网站
  10. java验证码制作思路_Java实现验证码制作之一自己动手
  11. Python查找包含指定字符串的所有Office文档
  12. c语言程序设计课用电脑吗,C语言程序设计之简单计算器
  13. sqlalchemy mysql_小窍门:为MySQL和Pandas准备的SQLAlchemy
  14. Kafka 环境部署与配置详解
  15. Linux 网卡流量查看
  16. bootstrap table 小计行_【2018/4/11】bootstrapTable添加一行
  17. stm32编程初始化设备步骤
  18. Excel处理数据技巧
  19. 虚拟机桌面切换命令行
  20. “融而开放、合以创新”T-HIM融合通信技术开发实战

热门文章

  1. Taro+react开发(18)--定义变量值
  2. react学习(13)-moment中 isRangePicker 控制类型
  3. react学习(9)----react生命周期
  4. 前端学习(2665):完成vue3.0的todolist添加
  5. 前端学习(2464):vue中 slot
  6. 前端学习(1320):同步和异步得区别
  7. 前端学习(988):jquery常见的api
  8. 第一百三十三期:MySQL锁会不会,你就差看一看咯
  9. 第三十期:BAT 为什么都看上了重庆?
  10. java学习(39):九九乘法表