LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 935|回复: 7

./command和command有区别吗?

[复制链接]
发表于 2009-9-1 23:02:04 | 显示全部楼层 |阅读模式
网上下了一个flashplayer播放.swf文件,flashplayer的可执行文件放在release文件夹下面,我在release目录下输入 “flashplayer file.swf”,提示无法找到命令,输入“ ./flashplayer file.swf"可以执行。真是奇怪,访问当前文件夹里的内容要不要". /"不是一样的吗?
发表于 2009-9-1 23:11:12 | 显示全部楼层
这个是有区别的。当你输入一个命令后,linux默认应该不是首先查找当前目录,而是按照一个特定的顺序查找几个地方,包括:shell内置命令、系统命令别名、全局的PATH环境变量指出的路径等等(具体是怎么一个顺序以及除了这些还有哪些我也说不说准确)。而你用./前缀就是指定在当前目录下的那个命令程序,系统就不会去查找其他地方了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-1 23:26:44 | 显示全部楼层
那linux在那些地方找不到命令,不会再到当前文件夹下面找马?
回复 支持 反对

使用道具 举报

发表于 2009-9-1 23:37:49 | 显示全部楼层
Post by ypl_hust;2022885
那linux在那些地方找不到命令,不会再到当前文件夹下面找马?

这个。。。应该是不会的。。。不过。。。让我试试先。。。

写到一半opera死了。你要的功能是可以实现的,不过就像楼下说的,可能出于安全性考虑,linux通常默认不做这样的设置。
回复 支持 反对

使用道具 举报

发表于 2009-9-1 23:38:10 | 显示全部楼层
通常,默认的path中不包含当前目录,出于安全考虑也不推荐把 ./ 加入到path中。windows/dos下先找当前目录的做法极不安全。
回复 支持 反对

使用道具 举报

发表于 2009-9-1 23:50:35 | 显示全部楼层
Post by ypl_hust;2022885
那linux在那些地方找不到命令,不会再到当前文件夹下面找马?


PATH默认不包括当前目录。./其实就当前目录的意思,类似~/用户主目录。加上./就是指定执行当前目录相对应的文件
回复 支持 反对

使用道具 举报

发表于 2009-9-2 13:52:29 | 显示全部楼层
当前目录是不在PATH里的,这个主要是安全考虑,你熟悉了就好了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-2 14:38:16 | 显示全部楼层
好,谢谢各位
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表