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