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

    xiaoxiao2023-07-07  165

    本节书摘来自异步社区出版社《MacTalk•人生元编程》一书中的第1章,第1.2节,作者:池建强,更多章节内容可以访问云栖社区“异步社区”公众号查看。

    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 相关资源:敏捷开发V1.0.pptx
    最新回复(0)