【发布时间】:2015-01-16 08:38:55
【问题描述】:
成功构建 .cpp 扩展文件后,需要使用 ./a.out 命令执行 a.out 文件。 ./ 代表什么?它只是在终端上执行它的一种方式吗?有没有进一步解释它代表什么?
【问题讨论】:
-
目录
.是当前目录,所以./a.out是当前目录下的文件a.out。仅供参考,目录..是父目录。此外,这与 C++ 或一般编程无关,确实应该在SuperUser 上询问。
成功构建 .cpp 扩展文件后,需要使用 ./a.out 命令执行 a.out 文件。 ./ 代表什么?它只是在终端上执行它的一种方式吗?有没有进一步解释它代表什么?
【问题讨论】:
.是当前目录,所以./a.out是当前目录下的文件a.out。仅供参考,目录.. 是父目录。此外,这与 C++ 或一般编程无关,确实应该在SuperUser 上询问。
这与 c++ 无关。它适用于类似unix的操作系统。 ./ 表示
在当前目录中查找我的脚本,而不是全部查看
$PATH中指定的目录
【讨论】:
. 是当前目录(如.. 是当前目录的父目录)所以./a.out 表示“从当前目录运行a.out 程序”。
它适用于路径中没有. 的人。如果您共享您的盒子或过于偏执,这是一个好主意,但对于家庭盒子,将. 添加到路径末尾可能更容易,因此您不必使用长版。
【讨论】:
PATH 中添加. 存在其他问题;如果我键入foo,如果碰巧存在名为foo 的文件或目录(即“权限被拒绝”,而不是“找不到命令”),我可能会收到“奇怪”错误...
如果您执行ls -al,它会列出当前目录的文件和文件夹,您会注意到它显示. 作为条目。
这对应于对当前目录的引用。
当我们说 ./a.out 时,我们告诉 shell 执行相对于当前目录的 a.out 文件
【讨论】:
当您在 Linux shell 中键入命令时,为了决定要执行的操作,shell 首先查看其中是否有 /。如果没有,它会寻找:
$PATH 环境变量中列出的某些目录中的可执行文件。如果名称中有/,那么它总是会查找具有该名称的文件。
您可能知道,. 是当前目录。
所以./ 做了几件事:
$PATH 中查找程序。【讨论】: