什么是./在终端上执行

时间:2015-01-16 08:38:56

标签: linux shell unix posix

成功构建.cpp扩展文件后,需要使用./a.out命令执行a.out文件。 ./代表什么?它只是在终端上执行它的一种方式吗?对它的代表有进一步的解释吗?

4 个答案:

答案 0 :(得分:3)

这与c ++无关。它适用于像操作系统一样的unix。 ./说

  

查看我的脚本的当前目录,而不是查看所有内容   $PATH

中指定的目录

答案 1 :(得分:1)

.是当前目录(如..是当前目录的父目录),因此./a.out表示“从当前目录运行a.out程序”。< / p>

适用于路径上没有.的人。这是一个好主意,如果你分享你的盒子或过于偏执,但对于一个家庭盒子,它可能更容易只是添加 .到路径的末端,所以你没有使用长版本。

答案 2 :(得分:1)

如果您执行ls -al,它会列出当前目录的文件和文件夹,您会注意到它显示.作为条目。

这对应于对当前目录的引用。

当我们说a.out

时,我们告诉shell执行相对于当前目录的./a.out文件

答案 3 :(得分:1)

当您在Linux shell中键入命令时,要确定要执行的操作,shell首先会查看其中是否有/。如果没有,则查找:

  1. 内部shell命令。
  2. $PATH环境变量中列出的某些目录中的可执行文件。
  3. 如果名称中有/,则会始终查找具有该名称的文件。

    您可能知道.是当前目录。

    所以./做了几件事:

    1. 它阻止shell将命令解释为内置shell。
    2. 它阻止shell在$PATH
    3. 中查找该程序
    4. 它使shell只在当前目录中查找程序。