📜  UNIX 中的绝对和相对路径名

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

UNIX 中的绝对和相对路径名

路径是操作系统文件系统中文件或文件夹的唯一位置。文件路径是 / 和字母数字字符的组合。

绝对路径名

绝对路径定义为从根目录 (/) 指定文件或目录的位置。
写一个绝对路径名:

  • 从根目录 ( / ) 开始并向下工作。
  • 在每个目录名后写一个斜杠 ( / )(最后一个是可选的)

    例如 :

    $cat abc.sql
    

    当当前目录中存在文件“abc.sql”时才有效。但是,如果此文件不存在于您的工作目录中并且存在于 /home/kt 中的其他位置,则此命令仅在您使用它时才起作用,如下所示:



    cat /home/kt/abc.sql
    

    在上面的例子中,如果路径名的第一个字符是 /,那么文件的位置必须相对于 root 来确定。当路径名中有多个 / 时,对于每个这样的 /,您必须在文件系统中下降一级,就像上面的 kt 比 home 低一级,因此比 root 低两级。

    相对路径

    相对路径定义为直接与当前工作相关的路径(pwd)。它从您当前的目录开始,永远不会以 / 开头

    更具体地说,让我们看一下下图,如果我们正在寻找照片,那么它的绝对路径将作为/home/jono/photos 提供,但假设我们已经存在于 jono 目录中,那么它的相对路径同样可以写成简单的照片

    使用 。和 .. 在相对路径名中

    UNIX 在相对路径名中提供了一个快捷方式——使用当前或父目录作为参考并指定相对于它的路径。相对路径名使用以下神秘符号之一:

    .(a single dot) - this represents the current directory.
    ..(two dots) - this represents the parent directory. 

    现在,这实际上意味着如果我们当前在目录 /home/kt/abc 中,现在您可以使用..作为cd的参数移动到父目录 /home/kt 为:

    $pwd
    /home/kt/abc
    $cd ..               ***moves one level up***
    $pwd
    /home/kt
    

    注意:现在/当与 .. 一起使用时具有不同的含义;它不是向下移动一级,而是向上移动一级:

    $pwd
    /home/kt/abc        ***moves two level up***
    $cd ../..
    $pwd
    /home
    

    绝对路径和相对路径示例

    假设您当前位于 home/kt 并且您想将目录更改为 home/kt/abc。让我们看看绝对和相对路径的概念来做到这一点:

    1. 使用相对路径概念更改目录:
      $pwd
      /home/kt
      $cd abc                   
      $pwd
      /home/kt/abc         
      
    2. 使用绝对路径概念更改目录:
      $pwd
      /home/kt
      $cd /home/kt/abc
      $pwd
      /home/kt/abc