当前位置: 首页>>技术教程>>正文


bash – 给定路径前的 ./是什么意思?

问题描述

我被告知要运行这个:

./yiic message ./app/messages/config.php

但我不明白 ./ 的意思,谁能解释一下。

注意:相信我,我们不能用谷歌搜索。我试过了:

./意思是 ./ubuntu

这和什么都没有一样。 🙁

最佳方案

./. 是当前目录的 unix 简写。

当当前目录不在您的 PATH 中时,您需要指定它。 PATH 是运行程序时搜索的文件夹列表。 (您可以通过编写 echo $PATH 来确定它。)如果可执行文件不在您的 PATH 中,要运行它,您需要指定它所在的文件夹。您可以通过提供文件的完整路径来完成此操作,但如果文件是在当前目录中,您可以使用 ./ 作为速记。

类似地,../.. 是当前目录上方目录的简写。

次佳方案

命令行中的每个目录都有两个 “special directories” 称为 ... 。它们分别是当前目录和包含当前目录的目录的简写。

因此,例如,cd ./more/directory/names 仅表示“从当前目录开始并在路径中继续”。类似地,命令 cd .. 的意思是“向上更改一个目录。

如果需要当前目录的名称,可以使用 pwd 命令。此外,如果您对 ls 使用 -a 标志,您可以看到这两个特殊目录。也就是说, ls -a 将输出一个以 ... 开头的列表。

第三种方案

其他人已经解释了 ... 的含义(分别是当前目录和父目录)。这适用于所有路径名。

打开终端时,通常从主目录开始: ~ (扩展为 /home/username )。以下路径都是等效的,前提是您当前的工作目录是 /home/username

  • /home/username

  • .

  • ../username

  • ../../home/username

  • ../../../home/username(/ 的父目录还是 / )

  • ./././././.(当前目录在当前目录…)

  • ./(目录允许尾随斜杠)

  • /home////username///(多个斜线也是如此)

不要将 ./program. program 混淆。 ./program 运行当前目录中设置了执行位的文件。 . ./program 是一个 bash 东西,也可以写成 source ./program,它从当前目录中的 program 文件中读取 bash 命令并在当前 shell 中执行它们。

如果您想知道为什么您可以只运行 gedit 而不是 /usr/bin/gedit 而不是 program 而不是 ./program/home/username/program ,请参阅相关问题:

第四种方案

意思是从 current directory path 开始。

假设你有一个 path 像这样:

/usr/ /usr/bin/ /usr/local/bin

/usr/bin/ 内部有一个名为 yiic 的可执行文件。

如果您发出 yiic 它将启动 /usr/bin/ 中的那个。

通过发出 ./yiic,您告诉系统在当前目录中查找此可执行文件。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/11999.html,未经允许,请勿转载。