Logo
Section 1 / 13

目录结构

了解 Windows 和 Unix 的目录结构。

检查点

目录结构

了解 Windows 和 Unix 的目录结构。

文件系统的用途

我们继续介绍 Unix 环境和 Bash,从文件系统开始。文件系统是一种软件,用于规定如何在磁盘上存储和读取数据。它涵盖以下内容:

  • 程序可以使用的访问磁盘数据的 API。
  • 一种统一的方式来访问不同的存储设备。
  • 磁盘存储上的物理操作。

下面我们来看一下 Unix 和 Windows 目录结构的区别。

Windows 的目录结构

Windows 资源管理器窗口顶部有一个地址栏,显示当前目录的绝对路径。绝对路径表示文件系统对象的位置,与当前目录无关。

另一种指定文件系统对象位置的方式是使用相对路径。它告诉我们如何从当前目录到达目标对象。

目录是一种文件系统中的分类结构,可以包含文件和其他目录。Windows 中称之为“文件夹”。这两个名称指的都是同一种文件系统对象。

下图展示了一个资源管理器窗口。地址栏显示为 此电脑 > 本地磁盘 (C:) > msys64,对应于绝对路径 C:\msys64。因此,我们在资源管理器窗口中看到的是 C 盘上 msys64 目录的内容。

...
Windows 资源管理器

路径中的字母 C 表示本地系统磁盘驱动器。本地驱动器指的是与计算机物理连接的设备。我们也可以拥有网络驱动器,通过网络访问这类设备。系统磁盘是指安装了 Windows 操作系统的磁盘。

Windows 使用拉丁字母标记每个磁盘驱动器。我们可以像打开普通文件夹一样用资源管理器打开驱动器,然后访问其内容。

例如,C 系统驱动器包含一组标准目录,这些目录是在安装 Windows 时由系统创建的。如果我们在资源管理器中打开 C 驱动器,会看到以下目录:

  • Windows
  • Program Files
  • Program Files (x86)
  • Users
  • PerfLogs

这些目录用于存储操作系统组件、用户应用程序和临时文件。

我们可以将额外的磁盘驱动器连接到计算机,或者将一个物理磁盘划分为多个逻辑分区。Windows 会为这些额外的磁盘和分区分配拉丁字母(如 D、E、F 等)。我们可以在这些位置创建任意的目录结构,Windows 不会对我们的操作进行任何限制。

文件分配表

文件分配表(FAT) 文件系统定义了 Windows 如何管理和访问磁盘。微软最初为 MS-DOS 操作系统开发了这种文件系统。FAT 的基本原理成为 ECMA-107 标准的基础。

微软的下一代文件系统称为 NTFS。它在现代 Windows 版本中取代了过时的 FAT。但由于需要向后兼容,NTFS 和 FAT 在磁盘和目录结构的基本原理上保持一致。

Unix 的目录结构

Unix 的目录结构遵循 POSIX 标准。与 Windows 相比,这种结构给予用户的自由度更少。它包含若干预定义的目录,我们无法移动或重命名它们。我们的数据只能放在特定路径中。

根目录

POSIX 标准规定,文件系统必须有一个顶层目录,称为 根目录。它用斜杠 / 表示。所有连接的磁盘驱动器上的目录和文件都位于根目录之下。

挂载

若要访问磁盘驱动器的内容,必须先将其挂载。挂载 指的是将磁盘的内容嵌入到根目录中。挂载完成后,我们可以通过某个路径访问磁盘内容。这个路径称为 挂载点。当我们进入挂载点时,就进入了该磁盘的文件系统。

比较 Windows 和 Unix 的目录结构

我们通过一个例子来比较 Windows 和 Unix 的目录结构。假设我们的 Windows 计算机有两个本地磁盘:C 和 D。它们的目录结构如下所示:

1C:\ 2 PerfLogs\ 3 Windows\ 4 Program Files\ 5 Program Files (x86)\ 6 Users\ 7 8D:\ 9 Documents\ 10 Install\

假设我们在 Windows 上安装了 Unix 环境,然后运行终端模拟器,得到的目录结构如下:

1/ 2 c/ 3 PerfLogs/ 4 Windows/ 5 Program Files/ 6 Program Files (x86)/ 7 Users/ 8 9 d/ 10 Documents/ 11 Install/

除了目录结构之外,Unix 和 Windows 文件系统还有一个关键区别:Unix 环境是区分大小写的。这意味着,即使两个单词的字母相同,只要大小写不同,它们就是不同的。

例如,在 Unix 中,Documents 和 documents 是两个不同的名称。而 Windows 不区分大小写。如果我们输入 c:\windows 路径到资源管理器地址栏,它会打开 C:\Windows 目录。但在 Unix 环境中,这种方法行不通,我们必须正确输入每个字符的大小写。

最后,在 Unix 路径中,使用正斜杠 / 分隔目录和文件。而在处理 Windows 路径时,则使用反斜杠 \。

Quiz

单选题

以下哪一项表示文件系统对象的位置,而与当前目录无关?

1 / 3

Bash Shell

文件系统导航命令