为什么./home/Desktop不正确而./Desktop正确?

为什么./home/Desktop不正确而./Desktop正确?

我昨天开始学习Linux。我有一个问题,我无法通过我的书或 Google 来回答。.//在壳里有什么区别 ?

我问这个问题是因为当我运行命令时./home/yogesh/Desktop/Books,我收到此错误:

bash: ./home/yogesh/Desktop : No such file or directory

然而,在删除点时它给出

/home/yogesh/Desktop/Books : Is a directory

或者,如果我运行/Desktop,它会返回

/Desktop : No such file or directory

但是在之前添加一个点/,我得到

./Desktop: is a directory

./和 和有什么区别/

答案1

在 unix 上(就像在 Windows 上一样),/foo是文件或目录的位置(绝对位置,从根目录开始:)/。而./foo是相对位置(相对于当前目录)...您可以省略前导点 + 斜杠,只写foo.

通过输入命令/Desktop./Desktop,您可以告诉 shell 执行无法执行的 Desktop...。

/Desktop不存在,因此出现错误消息。

./Desktop,即绝对位置/Home/YOURNAME/Desktop确实存在。但它是一个目录,而不是可执行文件...您可能忘记了要运行的命令的前缀(通常cd是 或ls

答案2

示例说明:

/(斜杠)表示 root,来自文件系统的根。因此,/home/yogesh/Desktop/Books从根开始,然后检查homehome检查下yogesh等等。这称为绝对路径。

.(点)表示从当前目录开始。因此,如果您当前的目录是/home/yogesh并且您检查了./Desktop,它就在那里。这称为相对路径。

答案3

在 Unix 和类 Unix 系统上,.表示当前目录。例如ls .与 相同ls,会列出当前目录的内容。因此,当您用作./Desktop命令时,它会Desktop在当前目录下找到一个名为 that 的目录。然后您会收到一条错误消息,告诉您这是一个目录,因此无法执行,因为它不是命令。

/是文件系统的根。它与C:\Windows 上类似。当您运行时/Desktop,系统将Desktop在该目录中查找名为 that 的目录/。那是不存在的,它告诉你。

例如,如果我在/home/yogesh并且我想要转到/home/yogesh/Desktop,我可以使用相对路径(相对于我现在所在的目录)并运行cd ./Desktopcd Desktop,或者我可以使用绝对路径并运行cd /home/yogesh/Desktop

答案4

第一个不应该是相对位置。

相对位置是指距离您所在位置较短的事物。绝对位置是从 root / 开始,这是 Linux 中的第一个目录位置。当你不在 /var 中时,你可以使用

cd /var/www

/var/www 是一个绝对位置。如果你在 /var 中,你可以使用

cd ./www

或者

cd www

将其记为更短。

我推荐一本 William Shots 的免费电子书。

这是该电子书的链接:

Linux 命令行 作者:William Shots

相关内容