为了运行保存在我的主目录中的特定程序,我必须使用“./”命令调用它。命令到底是做什么的?
答案 0 :(得分:5)
./
不是命令,它是路径的一部分。运行命令时,可执行文件必须位于$PATH
环境变量中列出的目录中,或者必须明确指定路径。 ./cmd
表示在当前目录中运行可执行文件cmd
。
答案 1 :(得分:3)
.
是当前目录。
./file
是当前目录中文件的相对路径,而file
只是shell需要搜索的裸名称(在$PATH)
中。
与/bin/sh
等等(概念上)没有什么不同。
答案 2 :(得分:0)
./
不是命令。奇怪的是.
是一个真实的目录名,它链接到当前目录。因此,您当前的目录(至少)有两个名称,您通常使用的名称和.
。所有目录都有此功能,即使在Windows上也是如此。
/
恰好是Linux和UNIX上使用的目录分隔符。
我们说你当前的目录是/home/pete
。您可以通过说:
/home/pete/program_name
或:
./program_name
他们的意思是一样的。当然,您并不总是需要像ls
这样的程序,这是因为这些程序驻留在PATH
环境变量中提到的目录中。 echo $PATH
要看到这一点。
我说目录至少有两个名字。如果子目录中有子目录,则它也称为..
。因此,目录有两个名称(称为硬链接),每个子目录有一个名称。查看ls -l
命令:
mkdir adir
ls -ld adir
drwxr-xr-x 2 clivedarke staff 68 6 May 17:25 adir
ls -ld .
drwxr-xr-x+ 74 clivedarke staff 2516 6 May 17:25 .
见第二栏? 2表示新目录(adir)。您可以看到我当前的目录(.
)有74个名称(硬链接),因此这意味着72个子目录。