关于PATH中路径搜索顺序

zhqyzhqychn 2009-04-26 03:48:40
执行可执行文件时搜素path是按照path变量从前到后的值进行搜索吗?假如说我当前目录有个可执行文件然后/usr/bin/里也有同名的 可执行文件,想指向哪个呢,和path里的路径顺序有关系吗 就是说和 “.”和“/usr/bin”在path里的先后顺序有关系吗
...全文
570 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
puheavy123 2009-04-27
  • 打赏
  • 举报
回复
不会先搜索当前路径的,因为如果有恶意代码或程序置入到当前路径下的话,最容易出问题了,因为普通目录最容易攻击,只要做一个简单的alias,就连你输入一个ls命令,也能触发恶意代码的执行,所以,命令的搜索顺序都是按照$PATH来搜索执行的,不过,在搜索执行的$PATH前,还会首先执行binutils内置命令
mosaic 2009-04-26
  • 打赏
  • 举报
回复
path中的顺序就是从前往后,如fox所讲的。

一般把.加到最后。
mosaic 2009-04-26
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhqyzhqychn 的回复:]
我当前文件里有个test可执行文件,/usr/bin也有,结果没执行我的,我还以为是先搜索当前路径呢
[/Quote]

就是这样的,如果不把.加到path里面,那么如果执行当前目录下命令时不指定./就会报找不到命令,前面有兄弟说先搜索本地路径是不准确的。
zhqyzhqychn 2009-04-26
  • 打赏
  • 举报
回复
我当前文件里有个test可执行文件,/usr/bin也有,结果没执行我的,我还以为是先搜索当前路径呢
fox000002 2009-04-26
  • 打赏
  • 举报
回复
如果可执行文件在当前目录,还是指定一下比较好


./xxxx


把 . 加到 PATH 的话后患无穷

PATH 中的搜索顺序是从前往后的
morris88 2009-04-26
  • 打赏
  • 举报
回复
一般按 $PATH 中出现的次序查找...
  • 打赏
  • 举报
回复
应该是先搜索本地文件夹,再查找其他。
  • 打赏
  • 举报
回复
先搜索本执行文件所在路径,再找环境变量的路径。
如果有注明绝对路径,也会查找。

先后顺序就不清楚了。

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧