【问题标题】:Absolute path to Relative Path in UnixUnix中相对路径的绝对路径
【发布时间】:2012-08-30 04:37:06
【问题描述】:

此命令仅列出我的 fileAsst 目录中的文本文件:

  ls ~/UnixCourse/fileAsst/*.txt

现在我需要做同样的事情,但使用相对路径,到目前为止我尝试的是:

  ls ~/UnixCourse/../*.txt 

但它说我没有得到正确的答案,任何人都可以给我一些提示或解释相对路径和绝对路径之间的区别,因为我仍然不了解它。

【问题讨论】:

  • ~/UnixCourse/../.txt~/.txt 相同。 ../ 基本上是在说“返回一个文件夹”。
  • 在相对路径中它指定../作为路径中的向上层次结构,

标签: unix ls


【解决方案1】:

相对总是相对于某个现有目录,您当前“位于”其中(通常通过cd 命令)。在您的问题中,您没有显示当前目录是什么。所以没有单一的“正确”答案。

如果您的当前目录是 ~(这只是您的主目录的快捷方式,例如 /home/myuser),那么您的相对 ls 命令看起来像(我正在添加为清楚起见,隐含的先前 cd 命令):

 cd ~
 ls UnixCourse/fileAsst/*.txt

同样,如果您的当前目录是~/UnixCourse,那么您的相对ls 命令将如下所示:

 cd ~/UnixCourse
 ls fileAsst/*.txt

或者最简单的情况,当您已经在要列出以下内容的目录中时:

 cd ~/UnixCourse/fileAsst
 ls *.txt

明白了吗?

最后,正如您所发现的(我猜想是偶然的),您可以在路径中使用 ... 来暗示“一个(子)目录向上”或“当前目录”。

例如,以下路径是等效的,并且都解析为“UnixCourse/fileAsst”:

 UnixCourse/../UnixCourse/fileAsst/
 UnixCourse/SomeOtherDir/../fileAsst/
 UnixCourse/./fileAsst
 UnixCourse/fileAsst/YetAnotherDir/../

请注意,这是一个正交概念,可用于相对路径和绝对路径。

【讨论】:

    【解决方案2】:

    路径名有两类:

    1. 绝对:以斜线开头。
    2. 相对:不要以斜线开头。

    无论您当前的工作目录如何,绝对路径名都具有相同的含义。绝对路径名可能在初始斜杠之后包含 .. 组件。在系统调用 realpath() 之后,不带 .. 组件且不遍历符号链接的绝对路径名有时被称为“真实路径”,可用于确定名称的真实路径。

    相对路径名是相对于当前工作目录的;从概念上讲,每个相对路径名都可以被视为以./ 开头。相对名称可能以 .. 开头,以便从当前工作目录向上移动。相对路径名的一个特例是一个简单的文件名——一个没有显式目录组件的名称。当然,那是当前目录中的一个文件(或其他命名对象)。

    要根据绝对路径名确定相对路径名,您还必须知道当前工作目录。

    有关详细信息,请参阅:

    【讨论】:

      【解决方案3】:

      绝对路径: 绝对路径是包含根目录和所有其他包含文件或文件夹的子目录的路径。

        ~/UnixCourse/fileAsst/*.txt
      

      相对路径: 相对路径只是完整路径的一部分。

        cd ~UnixCourse/fileAsst/ 
      
        ls *.txt
      

      【讨论】:

        【解决方案4】:

        没有看到单行答案...

        ls ../fileAsst/*.txt
        

        希望能帮助到别人!

        【讨论】:

          猜你喜欢
          • 2012-01-11
          • 2010-09-15
          • 2013-04-17
          • 2011-06-15
          • 2011-02-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多