为什么我们在 linux 中运行编译代码之前使用./?如果我所在的目录高于已编译代码的目录,则似乎没有必要。让我举例说明。如果我的代码在/home/uname/code 中,并且我也在同一目录中,则必须使用./a.out。但是如果我在/home/uname/那么我可以使用./code/a.out。在这里我使用./但我认为更多的是浏览目录,而不是作为它必须运行代码的指示。那么,如果我与代码位于同一目录中,为什么我需要使用./来运行已编译的代码?
当您发出命令时,您的 shell 会使用一个技巧,使您看起来可以只调用该命令而不指定其完整路径。shell 在$PATH环境变量中列出的每个目录中查找该命令,如果找到,则安排运行该命令。
如果要运行不在 中的目录之一中的命令$PATH,则必须向 shell 提供在何处查找该文件的提示。在您的示例中,由于/home/uname/codeis not in $PATH,您需要为 shell 提供足够的路径信息,以便能够找到您想要执行的文件。无论您当前的工作目录恰好是文件所在的目录还是任何其他目录,都是如此。如果您碰巧与要执行的文件位于同一目录中,则./文件名之前的内容足以告诉 shell 在哪里可以找到该文件。
| 归档时间: |
|
| 查看次数: |
181 次 |
| 最近记录: |