为什么执行一个文件要用./fileName,而不能直接用fileName呢?

为当前最终发行版之前的所有版本提供支持
回复
头像
longxj
帖子: 215
注册时间: 2006-10-07 15:17
送出感谢: 0
接收感谢: 0

为什么执行一个文件要用./fileName,而不能直接用fileName呢?

#1

帖子 longxj » 2006-11-13 12:42

如题!
头像
zhuqin_83
帖子: 10606
注册时间: 2006-05-13 4:02
送出感谢: 0
接收感谢: 7 次
联系:

#2

帖子 zhuqin_83 » 2006-11-13 12:54

你双击他也可以阿。
bash脚本么,当然是用./ 或者 bash 或者 sh执行的。
HP Pavilion DV6-2064CA: AMD Turion II Ultra Dual-Core Mobile M640, HD4650, 2GBx2 DDR2-800, Seagate 500GB 7200RPM SATA, BD-ROM
DELL UltraSharp 2209WA
Arch64, Testing repo
wygenius
帖子: 6
注册时间: 2005-10-14 9:34
送出感谢: 0
接收感谢: 0

#3

帖子 wygenius » 2006-11-13 13:32

文件名前面的./是代表当前目录下的一个文件。
如果不加,就会被默认为是系统命令,就会报错。
头像
sinoyster
帖子: 958
注册时间: 2005-10-16 13:24
来自: 四川成都
送出感谢: 2 次
接收感谢: 0
联系:

#4

帖子 sinoyster » 2006-11-13 13:36

主要是处于安全考虑,PATH不包含但前路径,如果你要包括的话可以在.bashrc里面export PATH=$PATH:./
Thank you Ubuntu Team!!!!
I still can't belive this is free...
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
送出感谢: 0
接收感谢: 7 次
联系:

#5

帖子 BigSnake.NET » 2006-11-13 13:38

linux接受命令后,会在PATH环境变量查找可执行文件

bigsnake-net@bigsnake-host:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games


看 ..默认的path变量根本没有当前目录 ( ./ ),所以是不会查找当前目录的文件的..

這是為了提高安全性
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
sinoyster
帖子: 958
注册时间: 2005-10-16 13:24
来自: 四川成都
送出感谢: 2 次
接收感谢: 0
联系:

#6

帖子 sinoyster » 2006-11-13 13:40

为什么不包含但前路径?
举个例子,如果有个什么恶意代码名字叫sl
内容是 rm -rf ~
如果你在某个它存在的目录ls不小心敲成了sl就会把你当前用户的所有文件删了
Thank you Ubuntu Team!!!!
I still can't belive this is free...
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
送出感谢: 0
接收感谢: 7 次
联系:

#7

帖子 BigSnake.NET » 2006-11-13 13:46

當前目錄的權限不好確定 ..
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
回复

回到 “老旧版本支持”