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

1.2 inode元信息

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

i_hash
i_list
i_sb_list
i_dentry
i_ino
i_count
i_mode
i_nlink
i_uid
...

这些字段记录了文件的几乎所有信息,比如链表指针、索引节点号、引用计数器、文件权限、硬链接数、文件所有者标识等,一共有几十个。但是这么去了解inode是令人发指和不人道的,谁能记住这么多i字段?写到这估计很多小白和老白已经拍案而起义愤填膺了,“Mac君,难道我们记住iPad和iPhone还不够吗?”是的,这么写人民是不会答应的!

我们马上来实际操作一下,用stat命令来查看真实文件的inode信息。打开终端,找到一个文件输入:

>stat .zshrc

结果是:

File: ".zshrc"
  Size: 2566          Blocks: 8          IO Block: 4096   普通文件
Device: fd02h/64770d    Inode: 1048553     Links: 1
Access: (0644/-rw-r--r--)  Uid: (  500/    chjq)   Gid: (  500/    chjq)
Access: 2013-09-12 11:37:39.396922508 +0800
Modify: 2013-07-20 03:56:17.645786812 +0800
Change: 2013-07-20 03:56:17.660906263 +0800

这就好办多了,只要认识英文,我们就能看到文件的inode里包含了文件的字节数、文件占用的块数、文件所属设备的设备号、索引节点号、链接数(有多少文件名指向这个inode)、权限(后续篇章会细说)、用户ID和组ID。

最后三行分别表示上次文件的访问时间、文件内容改变时间和文件属性改变时间。这一点Mac用户应该深有体会,打开Finder时可以根据文件属性对文件排序,那些属性中有类似这样的创建时间、打开时间、添加时间等,大家可以去感受下。

如果想单独查看文件的索引节点号,可以执行如下命令:

>ls -i .zshrc

系统会显示:

1048553 .zshrc
时间: 2024-08-29 10:50:15

《MacTalk•人生元编程》一一1.2 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.3 inode的存储

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

《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文件中的一种,它们包含了各自目录下的文件名和指向这些文件的指针,打开目录事实上就是打开目录文件,只要有访问权限,你就可以随意访问这些目录下的文件,但是只有内核的进程能够修改它们.