📜  文件目录中的路径名

📅  最后修改于: 2022-05-13 01:56:11.244000             🧑  作者: Mango

文件目录中的路径名

先决条件 - 文件系统

分层目录系统 -

目录以树的形式维护。每个用户都可以根据需要拥有多个目录,以便文件可以以自然的方式组合在一起。

这种结构的优点:

  • 搜索效率高
  • 文件探查能力增加

当文件系统被组织为目录树时,需要某种方式来指定文件名。



通常使用两种不同的方法:

  1. 绝对路径名——在这种方法中,每个文件都有一个绝对路径名,由从根目录到文件的路径组成。例如,路径/usr/ast/mailbox表示根目录包含一个子目录usr,而该子目录又包含一个子目录ast,该子目录包含文件邮箱。

    绝对路径名总是从根目录开始并且是唯一的。

    在 UNIX 中,路径的组成部分用“/”分隔。在 Windows 中,分隔符是“\”。
    Windows \usr\ast\邮箱
    UNIX /usr/ast/邮箱

  2. 相对路径名——这与工作目录(也称为当前目录)的概念结合使用。用户可以指定一个目录作为当前工作目录,在这种情况下,所有不是以根目录开头的路径名都被采用相对于工作目录。

    例如,如果当前工作目录为/usr/ast,那么绝对路径为/usr/ast/mailbox 的文件可以简单地引用为邮箱。
    换句话说,UNIX
    命令: cp /usr/ast/mailbox /usr/ast/mailbox.bak
    和命令: cp邮箱mailbox.bak
    如果工作目录是/usr/ast,做完全相同的事情。

何时使用哪种方法?
一些程序需要访问特定文件而不考虑工作目录是什么。在这种情况下,它们应始终使用绝对路径名。例如,拼写检查器可能需要阅读 /usr/lib/dictionary 才能完成其工作。在这种情况下,它应该使用完整的绝对路径名,因为它不知道调用时的工作目录是什么。无论工作目录是什么,绝对路径名始终有效。

当然,如果拼写检查器需要 /usr/lib 中的大量文件,另一种方法是发出系统调用将其工作目录更改为 /usr/lib,然后仅使用字典作为第一个参数打开。通过显式更改工作目录,它可以确定它在目录树中的位置,因此可以使用相对路径。