绝对路径名和相对路径名是在 Linux 上指定目录或文件的虚拟地址的两种方式。那么这两种路径类型之间有什么区别,您应该在命令中使用哪一种?现在就让我们一起来看看吧。
Linux 中的相对路径和绝对路径
如果您曾经使用过任何基于参数的 Linux 命令,如 cd 或 ls,您应该知道有多种方法可以指定目录或文件的路径。
您可能更喜欢使用普通的路径表达式,或者,如果您是高级 Linux 用户,可以使用复杂的正则表达式将文件名或目录名传递给程序。无论哪种方式,在 Linux 上只有两种方法可以指定目录路径:绝对路径和相对路径。
绝对路径表达式
绝对路径始终从根目录开始,到您要指向的实际目录或文件结束。在使用绝对路径表达式时,您需要键入层次结构中存在的所有子目录名,这些子目录名通向最终位置。
例如,如果您想使用绝对路径表达式指向 /var/www 目录中的 /html/linuxmi.com,您可以使用:
…其中表达式开头的 / 表示 Linux 上的根目录。
相对路径表达式
另一方面,相对路径是指使用另一个路径(通常是当前工作目录)作为其根或基的路径表达式。顾名思义,它与系统上的现有路径“相对”。
例如,如果您当前位于 /var/www 目录中,并且需要指向 /html/linuxmi.com,则可以使用:
…其中 . 表示您所在的当前目录。您可以使用 cd 命令更改当前工作目录。
除了单个句点(.)之外,相对路径表达式还使用双句点(..)来引用父目录。
例如,假设您位于以下目录结构中的 /www 文件夹中:
在上述路径表达式中,. 将表示/www目录,而 .. 将指向 /var 目录。如果在 /var/www 中需要访问/var中的另一个目录 /mail,您可以使用:
就这么简单。
绝对与相对:哪种路径表达式更好?
尽管路径表达式对于桌面用户来说似乎很简单且不重要,但在各种使用情况下,使用错误的路径名可能会导致很多未经请求的不便。Web 服务器就是一个很好的例子。
作为一名在 Linux 服务器上托管的项目中工作的 Web 开发人员,您需要访问项目目录中的文件。在这里,使用相对路径表达式是标准的,因为项目的子目录名或域名的任何更改都可能导致链接断开。
Linux 终端目录列表
您可以通过一个桌面用户可能会更好地理解的简单示例来理解这一点。/ 字符表示Linux系统上的根目录。想象一下,如果您突然改变了这一点,并使 / 字符指向主目录。许多包含绝对路径表达式的命令将无法工作,因为 / 现在已被重新分配到其他目录。
使用相对路径表达式的另一个优点是,由于它们与当前工作目录相对,因此可以节省键入不必要字符的时间。
这里唯一的问题是与相对表达式的复杂性和学习曲线。但这在绝对路径表达式中也很常见;要成为使用绝对路径的高手,您需要熟悉 Linux 目录层次结构。您可以使用 tree 命令查看整个 Linux 目录树,并使绝对路径表达式更容易。
了解 Linux 目录层次结构
Linux 目录结构对于运行基于 Linux 的操作系统的所有机器都是通用的。您可以使用 ls 或 tree 等命令来了解有关文件和文件夹在计算机上的结构的更多信息。