`command` 和 `./command` 有什么区别?

`command` 和 `./command` 有什么区别?

我发现有时我使用来command运行一个命令,但有时我使用来./command运行另一个命令。

有什么不同?

答案1

运行xx在环境变量中列出的目录中搜索PATH名为 的文件xx。它找到的第一个可执行文件(无论是二进制文件还是脚本)都会执行。它会执行不是在当前目录中查找,除非.在中列出PATH,即不是受到推崇的。

如果当前目录中有同名的可执行文件,则运行./xx该文件。xx

通过指定文件来运行文件地点,则必须包含符号。如果命令中/没有(实际上,/第一个字命令的 ,即要执行的文件的名称),它会搜索PATH该文件。如果有/,则命令的第一个字将被视为按位置引用特定文件。

因此,由于它包含,./xx所以与不同。xx/

当然/xx不是xx正常工作——它将尝试运行位于根目录中的文件/。因为.代表当前目录,所以在那里./xx运行xx

答案2

用更简单的话回答:

在 Shell 提示符下我们可以执行命令...命令只不过是保存在特定目录中的可执行文件的名称,例如:bin、sbin...我们可以调用可执行文件而不指定扩展名。

user@comp~# command

当我们输入命令时,文件将被执行并保存在特定的目录中。

user@comp~# ./command

在这种情况下,./command我们调用保存在当前提示路径(当前工作目录)中的可执行文件。您可以使用命令了解 shell 的当前工作目录pwd

相关内容