首页/操作系统/04-file/目录结构 🔗 在 Obsidian 中打开
操作系统 · 04-file

目录结构

重要度 ⭐⭐⭐⭐ 难度 ⭐⭐⭐考查频率 高 操作系统/文件管理目录文件目录目录项FCB
速查
目录本身也是文件,其内容是一组目录项(FCB)。四种结构按功能递增:单级 → 两级 → 树形 → 无环图,只有无环图支持文件共享

速查

项目
目录特殊文件,包含一组 FCB(文件控制块)
目录结构单级、两级、树形、无环图
目录项FCB(文件控制块)或 inode 编号 + 文件名
搜索路径绝对路径(从根目录)vs 相对路径(从当前目录)

核心概念

目录是文件系统中用于组织和管理文件的数据结构。目录本身也是一个文件(目录文件),其内容是一组目录项(FCB)

目录结构类型

1. 单级目录

  • 所有文件在同一目录中。
  • 优点:简单。
  • 缺点:文件名必须唯一,不允许重名

2. 两级目录

  • 分为主文件目录(MFD)和用户文件目录(UFD)。
  • 每个用户有自己的 UFD。
  • 不同用户文件可以重名

3. 树形目录

  • 多级层次结构,每个目录可以包含文件和子目录。
  • 有且仅有一个根目录。
  • 路径名唯一标识文件
  • 最常用的目录结构。

4. 无环图目录

  • 在树形目录基础上增加共享(链接)。
  • 多个目录可以指向同一文件。
  • 可能出现环(需要特殊处理)。

目录操作:搜索、创建文件、删除文件、创建目录、删除目录、移动目录、列出目录。

路径

  • 绝对路径:从根目录开始的完整路径(如 /home/user/file.txt)。
  • 相对路径:从当前工作目录开始的路径(如 ./file.txt)。
目录项里装什么 经典实现把整个 FCB(文件名 + 全部元数据)放进目录项;现代 UNIX 类系统把目录项瘦身为「文件名 + inode 编号」,元数据统一放在 inode 中 —— 这正是硬链接得以存在的前提。

关键性质

目录结构重名处理共享支持复杂度
单级目录不允许不支持最简单
两级目录用户间可重名不支持简单
树形目录不同目录可重名不支持中等
无环图目录不同目录可重名支持复杂

常见考法

考法解题套路
目录结构对比单级 → 两级 → 树形 → 无环图,功能递增
路径解析绝对路径从根开始,相对路径从当前目录开始
目录项包含什么FCB(文件名 + 元数据)或 inode 编号 + 文件名
无环图的环问题需要特殊处理(如只允许一个主链接 + 多个链接)

易错点

注意
  • 目录本身也是一个文件(目录文件),内容是 FCB 的集合。
  • 树形目录中文件名可以在不同目录下重复,但在同一目录下必须唯一。
  • 绝对路径从根目录开始,相对路径从当前工作目录开始。
  • 删除目录时,目录必须为空(有些系统允许非空删除,递归删除所有内容)。
  • 无环图目录的共享可能导致悬空指针——原文件被删除后链接失效。

核心结论

必背
  1. 目录是特殊的文件,包含一组 FCB(目录项)。
  2. 树形目录是最常用的结构,支持层次化组织和路径名唯一标识。
  3. 无环图目录支持文件共享,但需要处理环和悬空指针问题。
  4. 绝对路径和相对路径是文件定位的两种方式。
  5. 目录操作包括:搜索、创建、删除、移动、列出。

记忆卡片

四种目录结构?
单级目录、两级目录、树形目录、无环图目录。
树形目录的特点?
有唯一根目录,层次化组织,不同目录可重名。
绝对路径和相对路径的区别?
绝对路径从根目录开始,相对路径从当前工作目录开始。
目录项包含什么?
FCB(文件控制块)——包含文件名和元数据。
无环图目录比树形目录多了什么功能?
支持文件共享(多个目录可指向同一文件)。

交互动画 · 四种目录结构

根目录 a.txt b.txt c.txt d.txt e.txt 所有文件同处一层 → 文件名必须全局唯一,不允许重名 优点:结构最简单 | 缺点:无重名、无共享、检索慢 MFD 主目录 UFD 用户1 UFD 用户2 UFD 用户3 a.txt b.txt a.txt c.txt d.txt e.txt 不同用户的 UFD 之间允许重名(红色 a.txt),但仍不支持共享 / /home /etc /var user1 user2 log a.txt a.txt 路径名唯一标识文件 /home/user1/a.txt 与 /home/user2/a.txt 同名不冲突 / /home /pub user1 user2 shared.txt 链接 链接 同一文件被多个目录项指向 → 支持共享,须防悬空指针与环
单级目录:全系统只有一张目录表
重名:不允许 | 共享:不支持 | 复杂度:最简单
四种结构功能递增:解决重名 → 解决层次组织 → 解决共享。

相关知识点

file-concept-and-classification hard-link-and-symbolic-link

↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。