linux当前目录下的可执行文件不能直接执行的原因

 我来答
华源网络
2022-07-26 · TA获得超过5602个赞
知道小有建树答主
回答量:2486
采纳率:100%
帮助的人:148万
展开全部
linux的当前目录下有个可执行的文件:example。需使用./example来执行他(就是要指明路径),而不能仅用example。

原因:
如果在dos下执行一个文件,缺省情况下是先在当前目录下寻找,找不到的话在再PATH环境变量中寻找。而linux下运行可执行文件的逻辑是直接只在环境变量中寻找。要执行一个可执行文件要么其在PATH路径中,这种情况可以直接写文件名;要么指明完整路径。(一直以WIN上的观念来理解,以为会搜索当前目录,所以直接敲可执行文件的名字,老是报command not found!)所以如果某个可执行文件不在环境变量设置的目录下面的话。就不能直接使用其文件名来运行(即使在当前目录下也不行),需指定文件路径(相对和绝对都可)。要想在当前目录下直接写文件名,可将“./”加入PATH,但一般不建议这么做。

在linux平台下,我们编译的可执行bin文件,如果需要运行,则直接./test 即可运行, 如果我们不想加上./怎么直接运行test这个bin呢?
我们先来分析下这个./test是啥意思,首先test是可执行bin的名字,./表示当前目录,那么简单了,其实./就是告知test的路径。
我们可以echo $PATH, 可以查看当前设置的环境变量,我们吧test的路径,加入到PATH变量中去,那么就可以直接执行test了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式