此命令仅列出我的 fileAsst 目录中的文本文件:
ls ~/UnixCourse/fileAsst/*.txt
现在我需要做同样的事情,但使用相对路径,到目前为止我尝试过的是:
ls ~/UnixCourse/../*.txt
但它说我没有得到正确的答案,任何人都可以给我一些提示或解释相对路径和绝对路径之间的区别,因为我仍然不知道它。
绝对路径:绝对路径是包含根目录和所有其他包含文件或文件夹的子目录的路径。
~/UnixCourse/fileAsst/*.txt
相对路径:相对路径只是完整路径的一部分。
cd ~UnixCourse/fileAsst/
ls *.txt
相对总是相对于某些现有目录,您当前“位于”其中(cd
通常通过命令)。在您的问题中,您没有显示当前目录是什么。所以没有单一的“正确”答案。
例如,如果您的当前目录是~
(这只是您的主目录的快捷方式,例如,/home/myuser
),那么您的相对ls
命令将如下所示(为了清楚起见,我添加了隐含的先前cd
命令):
cd ~
ls UnixCourse/fileAsst/*.txt
同样,如果您的当前目录是~/UnixCourse
,那么您的相对ls
命令将如下所示:
cd ~/UnixCourse
ls fileAsst/*.txt
或者最简单的情况,当您已经在要列出以下内容的目录中时:
cd ~/UnixCourse/fileAsst
ls *.txt
明白了吗?
最后,正如您(偶然地,我假设)发现的那样,您可以在路径中使用..
and.
来暗示“一个(子)目录向上”或“当前目录”。
例如,以下路径是等效的,并且都解析为“UnixCourse/fileAsst”:
UnixCourse/../UnixCourse/fileAsst/
UnixCourse/SomeOtherDir/../fileAsst/
UnixCourse/./fileAsst
UnixCourse/fileAsst/YetAnotherDir/../
请注意,这是一个正交概念,可用于相对路径和绝对路径。
有两类路径名:
无论您当前的工作目录如何,绝对路径名都具有相同的含义。绝对路径名可能包含..
初始斜杠之后的组件。在可用于确定名称的真实路径的系统调用之后,不包含不遍历符号链接的组件的绝对路径名..
有时称为“真实路径” 。realpath()
相对路径名是相对于当前工作目录的;从概念上讲,每个相对路径名都可以被视为以./
. 相对名称可能..
以从当前工作目录向上移动开始。相对路径名的一个特例是一个简单的文件名——一个没有显式目录组件的名称。当然,那是当前目录中的一个文件(或其他命名对象)。
要从绝对路径名确定相对路径名,您还必须知道当前工作目录。
有关更多信息,请参阅:
没有看到一个单行的答案...
ls ../fileAsst/*.txt
希望可以帮助某人!