【问题标题】:inodes handling of directoriesinode 处理目录
【发布时间】:2011-05-13 01:24:53
【问题描述】:

我试图了解目录和文件如何在文件系统级别相互关联,特别是 *nix 文件系统,如 FFS 或 EXT。

我从概念上理解,inode 有一些元数据和指向文件位置的指针,但是它们如何保存目录信息以及知道哪些文件在哪个目录中?

【问题讨论】:

    标签: unix filesystems operating-system


    【解决方案1】:

    一个目录也有一个 inode。但是,它不包含指向文件内容位置的指针(因为它不是文件),而是指向目录的文件/子目录的 inode 的指针(所以它基本上是一个文件,但具有特殊的内容/标志) .此外,它还包含指向父目录及其自身的指针。

    要到达某个文件,只需遍历目录结构,就像遍历树时一样 - 要找出文件的完整路径,伪代码如下所示:

    parts = []
    inode = inode_of(file);
    parts.add(inode.name);
    while(inode.parent):
        parts.add(inode.parent.name)
        inode = inode.parent
    path = parts.reverse.join('/')
    

    【讨论】:

      【解决方案2】:

      目录只是一种特殊的文件。它的 inode 在模式字段中设置了 S_IFDIR 位。它的内容是一些包含文件名和 inode 编号的数据结构。

      【讨论】:

        【解决方案3】:
        猜你喜欢
        • 2012-04-15
        • 2010-09-07
        • 2014-04-29
        • 2012-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-04
        • 2014-05-09
        相关资源
        最近更新 更多