我做了一个实验:
$ touch abc abd abe abf
$ls
会出现以上文件
$ rm abc ab*
显示无abc文件,当然,ls后以上四个文件也没了
为何命令会优先处理ab*而不是从左到右先abc后再ab*呢?谢谢
为何rm abc ab*会显示不存在abc文件?
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
-
- 帖子: 76
- 注册时间: 2010-11-27 22:20
- lexdene
- 帖子: 434
- 注册时间: 2010-02-21 16:19
- 来自: 大连
- 联系:
Re: 为何rm abc ab*会显示不存在abc文件?
先解释,再执行。
shell会先解释你的命令,然后再执行你的命令。
例如,当你说
rm abc ab*
的时候,shell会寻求匹配通配符ab*的文件,这个时候abc文件还在,所以ab*会被展开为:abc abd abe abf。
那么你的命令就会变为:
rm abc abc abd abe abf
然后命令开始执行,先删除abc。
然后再删除abc的时候会发现abc不存在。
所以会提示“不存在abc文件”。
大概是这个意思是吧?
欢迎高手指教。
我对shell也只是略懂。
shell会先解释你的命令,然后再执行你的命令。
例如,当你说
rm abc ab*
的时候,shell会寻求匹配通配符ab*的文件,这个时候abc文件还在,所以ab*会被展开为:abc abd abe abf。
那么你的命令就会变为:
rm abc abc abd abe abf
然后命令开始执行,先删除abc。
然后再删除abc的时候会发现abc不存在。
所以会提示“不存在abc文件”。
大概是这个意思是吧?
欢迎高手指教。
我对shell也只是略懂。
大连Linux User Group: http://groups.google.com/group/dalian-lug?hl=zh-CN
- Sunmover
- 帖子: 2339
- 注册时间: 2010-05-24 13:02
- 来自: 星城长沙
- 懒蜗牛Gentoo
- 论坛版主
- 帖子: 7362
- 注册时间: 2007-03-02 17:36
- 系统: Linux Mint
- 月下叹逍遥
- 论坛版主
- 帖子: 33994
- 注册时间: 2010-10-07 14:23
- 系统: Archdows10
- 来自: 某系某星某洲某国某省某市
- 联系: