《MacTalk•人生元编程》一一1.3 inode的存储

1.3 inode的存储

文件会占用硬盘空间这事大家都清楚(注意,是空间,不是重量,无论您是复制100 GB进来,还是清除100 GB出去,硬盘都在那里,份量既不增一分,也不减一克),那么inode存放在哪里呢?当然也是在硬盘上,Linux是很聪明的,在分区和格式化硬盘的时候,就把硬盘分为了数据区和索引节点区。数据区存放普通文件,索引节点区存放inode对象。每个inode对象的大小一般是128字节或256字节,这个数值可以在格式化的时候设定。

如何查看inode的使用情况呢?可以执行如下命令:

df -iH
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/xvda        1.3M   83k  1.2M    7% /
devtmpfs         127k  1.5k  125k    2% /dev
none             127k   801  126k    1% /run
none             127k     2  127k    1% /run/lock
none             127k     1  127k    1% /run/shm

大家可以看到,在文件系统/dev/xvda上inode对象使用了可用空间的7%。这里做个提醒,如果你的系统里小文件非常多的话,那么完全有可能发生这样的情况:在磁盘空间还有剩余的时候,不能创建文件。这时候就要用df -iH命令看一下是否inode对象已经把索引节点区占满了。一旦无法创建inode,无论是文件还是目录,都将无法创建!

如果我们想查看/dev/xvda上inode对象的实际大小,可以执行如下命令:

>sudo tune2fs -l /dev/xvda | grep "Inode size"

系统会返回如下内容:

Inode size:        256

也就是每个inode对象大小是256字节。tuneifs是Linux下的文件系统参数调整工具。

今天续接前文,上一篇介绍了inode的元信息和inode的存储,今天主要说说Linux系统中的文件类型。

时间: 2024-08-29 11:29:13

《MacTalk•人生元编程》一一1.3 inode的存储的相关文章

《MacTalk•人生元编程》一一1.1 Linux的文件系统王国

1.1 Linux的文件系统王国 MacTalk•人生元编程在这个系列中和大家聊聊Linux的文件.索引节点.文件类型.软硬链接等内容,其中很多细节也是我使用了很长时间Linux后才真正掌握,希望大家不用那么久. 为什么是Linux?我觉得写技术的东西还是相对严谨一些好,虽然Unix.Linux.OS X一脉相承,但在具体命令上还是会有些差异,这个系列文章里所有的命令和显示结果都是在Linux上进行的,大家可以对照在Mac上试试,大部分一致,少部分不同. 在开始讲Linux王国的臣民之前,先介绍

《MacTalk•人生元编程》一一2.1 设计巨匠——乔纳森·艾维

2.1 设计巨匠--乔纳森·艾维 MacTalk•人生元编程今天看到一篇新闻,说苹果的CEO库克参加<华尔街日报>主办的D11科技大会时,谈了一些大家关心的热点问题,包括对Google Glass的看法,苹果的可穿戴技术策略(iWatch?),iOS平台为第三方开放更多的API,乔纳森·艾维(Jonathan Ive)主导iOS人机界面的设计等. Google的眼镜和Apple的手表离我这样的土老冒比较远,即使今秋发布iWatch,估计我也就是擦擦口水看一眼的份儿.第三方API呢,有新的用就是

《MacTalk•人生元编程》导读

前言 MacTalk•人生元编程在这本书付印的前一天,本书的责任编辑杨海玲老师找到了我说:书要出版了,你要不要写个前言和读者说两句?我说:来得及吗?杨老师郑重地看着我点了点头.好吧,那就说两句,于是就有了这一篇前言. 我小学四年级之前一直在农村居住,那时候没见过汽车,只见过马车和小推车.搬到城市之后才发现,这世上居然有汽车这种交通工具,那时我的理想是当一名212吉普车的司机.后来见的车多了,觉得司机不够神气,我希望拥有一辆自己的汽车.这个理想在长大后也实现了.但是我从没有想过自己会出版一本书!今

《MacTalk•人生元编程》一一1.2 inode元信息

1.2 inode元信息 上一篇文章中我们讲到了索引节点inode,每个文件都有一个唯一的inode对象,描述了文件的元信息.inode与文件是生死相依.一损俱损的关系,生命周期一致.很多痛恨身份证的人都说:"老子一生下来就有身份了,干嘛还又给个身份证?"Mac君对这种态度是赞同的.肯定的.欣赏的,但inode不一样,它就像你的指纹,属于文件的一部分并定义文件,这就像人生元编程一样,有了"元"的意味.inode由一个数据结构组成,主要包含这样一些字段: i_hash

《MacTalk•人生元编程》一一1.6 二逼文件

1.6 二逼文件 好,目录文件就介绍到这里,后续介绍的文件类型平时操作很少用到,我把它们统称为二逼文件类型,光荣入选的有以下几个. 块设备文件和字符设备文件,这些文件一般隐藏在/dev目录下,昼伏夜出,平时你感觉不到它们的存在,但是你想进行设备读取和外设交互时,就是它们大显身手的时候.比如磁盘光驱就是块设备文件,串口设备则属于字符设备文件.系统中的所有设备要么是块设备文件,要么是字符设备文件,无一例外.FIFO,江湖人称命名管道,主要用于进程间通讯.比如使用mkfifo命令可以创建一个FIFO文

《MacTalk•人生元编程》一一2.2 独自在家续篇兼答读者问

2.2 独自在家续篇兼答读者问 很多人没事就抱怨北京的空气,但是懂得变化的人会知道,何时赞美,何时吐槽. 总结一下,北京的空气变化大概是这个样子: 在月黑霾浓的深夜,伸手只见五指,这时一个叫做"大风"的环保工作者出现了,经过一夜激情,第二天阳光明媚,天蓝云白,PM2.5指数50,朋友圈多了很多蓝白之物.你极目远眺,蓝天和大地的交界处有一层透明的薄雾.第二天,深蓝变浅蓝,天地间的白雾变为灰色,PM2.5指数70.第三天,浅蓝变灰白,天地间夹了一层薄薄的雾霭,PM2.5升到120左右.第四

《MacTalk•人生元编程》一一1.7 硬链接

1.7 硬链接 基于inode技术,Linux允许多个文件名同时指向一个inode.好处就是,我们可以用不同的文件名去访问同一个文件,每次操作对文件内容的影响会波及所有"副本",删除掉一个"副本",不会影响其他文件.增加一个硬链接文件,仅仅是inode里的"Links"属性值加1,删除一个硬链接文件,属性值减1.只有"Links"的值为0时,文件才会被彻底删除,回收其占用的空间. 如何创建一个硬链接文件?非常简单: ln so

《MacTalk•人生元编程》一一1.8 软链接

1.8 软链接 软链接理解起来比较容易,类似Windows系统中的快捷方式. 软链接会创建新的inode,inode里主要记录了源文件的路径.当访问软链接文件时,系统会帮你自动指向源文件,无论你操作的是源文件,还是软链接文件,其实你最终操作的都是源文件,源文件删除了,软链接文件就成了无本之木,也就毫无意义,强制访问的后果就是No such file or directory. 创建软链接的命令如下: ln -s sourcefile destfile 大家可以尝试用stat命令查看这两个文件的i

《MacTalk•人生元编程》一一1.5 文艺文件

1.5 文艺文件 写到这儿你就知道,无论是Unix还是Linux,都是相当文艺范儿的.普通的说完了,就该是文艺的了,它就是大名鼎鼎的目录文件(directory file).这个概念对于用惯Windows的用户来说不太容易理解,文件是文件,目录是目录,岂可混为一谈?好吧,它文艺就文艺在这里了. 目录文件同样是Linux文件中的一种,它们包含了各自目录下的文件名和指向这些文件的指针,打开目录事实上就是打开目录文件,只要有访问权限,你就可以随意访问这些目录下的文件,但是只有内核的进程能够修改它们.