为什么运行命令的时候要打路径名,比如:在我的家目录下有个执行文件qq,我运行的时候一定要打./qq,而不是qq,
然而拷贝文件的时候却不要,比如:在~/test/下有个文件是file,同时还有个目录是dir,当前目录为~/test/,把file拷贝到dir下时,就可下命令: cp file dir,或者cp file ./dir 这两个命令都可以,大家帮忙解释一下!!!
[问题]为什么运行命令的时候要打路径名?
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
-
- 帖子: 1038
- 注册时间: 2007-01-10 9:32
[问题]为什么运行命令的时候要打路径名?
上次由 drongh 在 2007-04-05 20:00,总共编辑 1 次。
- gnix_oag
- 帖子: 1994
- 注册时间: 2005-05-19 18:38
- 来自: 湖南永州
- 联系:
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系:
- bones7456
- 帖子: 8495
- 注册时间: 2006-04-12 20:05
- 来自: 杭州
- 联系:
- 5451vs5451
- 帖子: 345
- 注册时间: 2006-07-14 18:56
- 来自: Apple Valley, Planet Tux, Linux System
Re: [问题]为什么运行命令的时候要打路径名?
举个例子,删除当前路径下的 abc 这个文件:
当 shell 看到 rm 这个命令名时,它是到 PATH 环境变量中列出的一系列路径中寻找名为 rm 的可执行文件;而当看到 abc 时,只是简单地将它作为参数传递个 rm 命令。shell 并不关心 abc 这个文件在哪儿。到哪儿去找文件完全由调用的命令来决定。绝大多数情况下,命令会在当前路径下寻找文件,但也有例外,例如 pon 和 poff 命令会到 /etc/ppp/peers 下寻找配置文件。
既然 shell 是到 PATH 环境变量中的路径下寻找命令,那么如果把 ./ 添加到 PATH 的末尾,则 shell 也可以找到当前路径下的命令而不必输入 ./ 。但这是不推荐的,因为无法限制用户对 ./ 的访问权限,从而增加了执行恶意代码的风险。
代码: 全选
rm abc
既然 shell 是到 PATH 环境变量中的路径下寻找命令,那么如果把 ./ 添加到 PATH 的末尾,则 shell 也可以找到当前路径下的命令而不必输入 ./ 。但这是不推荐的,因为无法限制用户对 ./ 的访问权限,从而增加了执行恶意代码的风险。