Dev*_*lar 18
对于数据文件,它没有区别 - 两个语句都将引用当前目录中的数据文件。(例如,cat filename
和cat ./filename
在语义上是相同的。)
如果有问题的文件名指的是可执行文件,即是您在命令行上键入的第一个(甚至唯一的)内容,则情况不同。./filename
将在您的当前目录中查找可执行文件,而不会在其他任何地方。filename
,另一方面,将评估环境变量PATH
,并filename
在其中存储的每个目录中查找(可能包括也可能不包括您的当前目录)。
./filename
/path/to/filename
因此,当您想要执行特定的可执行文件而不是在 PATH 中找到的第一个可执行文件时,首选(或任何其他)。
如果您正在运行一个程序,则filename
表示运行在您$PATH
的目录中找到的第一个程序,第二个表示运行当前目录中的程序。
如果您将该文件名用作程序的参数,如 indo_something filename
或 ,do_something ./filename
则它们的含义相同。
你指的是命令执行,对吧?
有一个环境变量PATH
包含一些系统目录,以分号分隔。当您键入时command
,系统会按照指定的顺序在这些目录中查找,以查找名为 <command> 的可执行文件,如果找到,则尝试执行它。您可以通过echo $PATH
在 bash 中查看您的 PATH 。例如:
$ echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/home/ivanatora/bin:/usr/local /kde4/bin:/usr/local/kde4/bin
当您键入时,./filename
您正在指定确切的路径:当前目录。您可以看到当前目录很少在您的 $PATH 中(出于安全原因)。因此,如果要从当前目录执行文件,请使用./filename
.
要按路径执行文件(特别是如果它不在 $PATH 中),您还可以键入<path>/file
,例如:
/sbin/ifconfig
归档时间: |
|
查看次数: |
1492 次 |
最近记录: |