2.2 文件系统

    事实上,Linux 系统中每个分区都是一个文件系统,有它自己的顶层目录和下面的目录层次结构。然后将这些单独的文件系统形成一个系统的总的目录层次结构。其办法是:将一个文件系统的顶层目录挂装到另外一个文件系统中的子目录上,使它们成为一个整体。

    举一个例子:在安装 Linux 时的时候,把一个硬盘分为三个分区。其中一个分区是安装的是根文件系统。第二个分区安装的是 /usr 文件系统;第三个分区安装的是 /home 文件系统。在目录树中,/home 目录及其子目录都安装在第三个分区中;/usr 目录及其子目录都安装在第二个分区中;在标准目录结构中,除去 /home 和 /usr 的其他目录安装在第一个分区中。因此通过 /home 和 /usr 这样的目录,将三个分区连结在一起,成为一个完整的文件系统。

    因此在 Linux 中,各个分区不是通过驱动器盘符来组成一个完整的文件系统,而是通过类似上例中的 /home、/usr 这样的目录来把各个分区连接在一起。我们称 /home 和 /usr 这样的目录为挂装点。

    存在磁盘中的文件,系统都分配给它一个号码,称为该文件的索引节点号(inode number)。它实际上是存在盘上的一个数组的入口索引号。数组的每个元素是一个索引节点,它保存了一个文件的管理信息,其中包括文件的建立时间,文件的所属关系,文件保存在磁盘中的位置等。正是这个文件索引节点号和文件名同时保存在目录中。所以,从本质上讲,目录只是将文件的名称和它的索引节点号结合在一起的一张表,目录中每一对文件名称和索引节点号称为是一个连接。因此同一个索引节点号可以出现在一个以上的连接中。也既是单个文件允许有多个有效路径名。这样做的好处是可以在不同的目录结构下,通过不同的路径访问同一个文件,而这个文件在磁盘中只有一个拷贝,节省了硬盘空间。同时,要删除一个文件或者目录,只有在同一个索引节点属于唯一一个连接时,才能成功。因此可以防止不必要的误删除。

    从上述概念中可以看出来,在一个文件系统中,索引节点号是唯一的,但是在不同的文件系统中又如何呢?如果要在不同的文件系统之间建立连接的话,就不能使用共享索引节点的方法。此时需要用 ln -s 来建立两者之间的符号连接。符号连接是 Linux 特殊文件类型的一种。事实上,它是一个文本文件,其中包含它提供连接的另一个文件的路径名。请注意,符号连接不但能应用于不同的文件系统之间,也可以应用于同一文件系统之内,而索引节点的连接只能用于同一文件系统之内。

    对操纵索引节点连接的 ln 和 mv 命令介绍。

回家