Unix中的“./”运算符是什么?

时间:2015-05-06 13:46:27

标签: bash shell unix

为了运行保存在我的主目录中的特定程序,我必须使用“./”命令调用它。命令到底是做什么的?

3 个答案:

答案 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个子目录。