Linux初学者:运行程序为什么非要加一个./

piaozi2003 2005-01-13 08:59:13
我在自己的目录下编译一个小程序,比如叫main,想要运行为什么非要./main,而不能直接输入main?
难道当前目录(不在环境变量中)的程序都要这样运行吗?
...全文
214 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjf7888 2005-01-13
  • 打赏
  • 举报
回复
加./也不会麻烦多少,减少歧义
piaozi2003 2005-01-13
  • 打赏
  • 举报
回复
谢谢 blueflame(蓝色的火焰)

我怎么就没有想到在配置文件中加入./呢? 先给分吧!
AACM 2005-01-13
  • 打赏
  • 举报
回复
如果不加./的话,它会首先到PATH中指定的路径下逐个去找你要运行的可执行文件,
如果正好有跟你相同的文件,这样就不是你想要的结果了,所以建议不要怕麻烦。
blueflame 2005-01-13
  • 打赏
  • 举报
回复
呵呵,楼主有看过windows的环境变量吗?

Path %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\UltraEdit;C:\Program Files\Common Files\Compuware\;

PATHEXT .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

你难道不觉得这跟Unix/Linux的PATH=的机制如出一辙?
你只要修改了你profile文件,在里面加入./,一样可以在当前目录下直接运行
streetfighter2001 2005-01-13
  • 打赏
  • 举报
回复
加./就执行当前目录下的文件,如果不加./则系统会自动在path配置中顺序搜索
piaozi2003 2005-01-13
  • 打赏
  • 举报
回复
上面朋友的意思我理解了,但感觉这一点没有DOS来的方便

即使我把我自己的bin目录加到环境变量中,但如果在bin目录下的子目录中编译的程序,不还是要./?

在DOS下,在当前目录下的程序可以直接运行的!!!
test22004 2005-01-13
  • 打赏
  • 举报
回复
当前目录咯 相对路经的
blueflame 2005-01-13
  • 打赏
  • 举报
回复
当然要指定完整的路径
你也可以修改你的用户配置文件.profile,加上./,如:
PATH=/bin:/usr/bin:$HOME/shell:./
这样就可以不用每次都敲个./了
loveisbug 2005-01-13
  • 打赏
  • 举报
回复
piaozi2003 2005-01-13
  • 打赏
  • 举报
回复
按照上面的说法只要我的程序不在环境参数指定的目录下,即使我自己的程序在当前目录下,只要当前目力不是系统指定的目录,就必须用./ ?
AlphaCN_NET 2005-01-13
  • 打赏
  • 举报
回复
./ 表明在当前目录, 如果是其他的目录中的可执行程序也必须指明路径
但是在 /user/sbin/ 或其他一些系统指定的目录中可以不加
常用的系统命令就是放在这样的文件夹中
zydyw 2005-01-13
  • 打赏
  • 举报
回复
编译程序的话必须得加 / 表示目录所在的位置。应该可以不加,需用其它代用,跟你一样是菜鸟 ,了解甚少!:)

23,120

社区成员

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

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