此命令仅列出我的fileAsst目录中的文本文件:
ls ~/UnixCourse/fileAsst/*.txt
现在我需要做同样的事情但是使用相对路径,到目前为止我尝试过的是:
ls ~/UnixCourse/../*.txt
但它说我没有得到正确的答案,任何人都可以给我一些提示或解释相对路径和绝对路径之间的差异,因为我仍然不在其中。
答案 0 :(得分:0)
绝对路径: 绝对路径是包含根目录和包含文件或文件夹的所有其他子目录的路径。
~/UnixCourse/fileAsst/*.txt
相对路径: 相对路径只是完整路径的一部分。
cd ~UnixCourse/fileAsst/
ls *.txt
答案 1 :(得分:0)
相对总是,相对于某个现有目录,您当前“定位”(通常通过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 :(得分:0)
路径名有两类:
无论您当前的工作目录如何,绝对路径名都具有相同的含义。在初始斜杠之后,绝对路径名可能包含..
个组件。在系统调用..
之后,没有realpath()
组件遍历没有符号链接的绝对路径名有时被称为“真实路径”,可用于确定名称的真实路径。
相对路径名相对于当前工作目录;从概念上讲,每个相对路径名都可以视为以./
开头。相对名称可能以..
开头,从当前工作目录向上移动。相对路径名的一个特例是一个简单的文件名 - 一个没有显式目录组件的名称。当然,这是当前目录中的文件(或其他命名对象)。
要确定绝对路径名的相对路径名,您还必须知道当前的工作目录。
有关详细信息,请参阅:
答案 3 :(得分:-1)
没有看到一个单行的答案......
ls ../fileAsst/*.txt
希望能帮助别人!