分页: 1 / 1

为何rm abc ab*会显示不存在abc文件?

发表于 : 2011-03-29 15:24
zipkong
我做了一个实验:
$ touch abc abd abe abf
$ls
会出现以上文件
$ rm abc ab*
显示无abc文件,当然,ls后以上四个文件也没了
为何命令会优先处理ab*而不是从左到右先abc后再ab*呢?谢谢

Re: 为何rm abc ab*会显示不存在abc文件?

发表于 : 2011-03-29 15:42
lexdene
先解释,再执行。
shell会先解释你的命令,然后再执行你的命令。
例如,当你说
rm abc ab*
的时候,shell会寻求匹配通配符ab*的文件,这个时候abc文件还在,所以ab*会被展开为:abc abd abe abf。
那么你的命令就会变为:
rm abc abc abd abe abf
然后命令开始执行,先删除abc。
然后再删除abc的时候会发现abc不存在。
所以会提示“不存在abc文件”。
大概是这个意思是吧?
欢迎高手指教。
我对shell也只是略懂。

Re: 为何rm abc ab*会显示不存在abc文件?

发表于 : 2011-03-29 15:45
Sunmover
:em09

Re: 为何rm abc ab*会显示不存在abc文件?

发表于 : 2011-03-29 15:55
懒蜗牛Gentoo
2楼正解

Re: 为何rm abc ab*会显示不存在abc文件?

发表于 : 2011-03-29 16:04
月下叹逍遥
看样子和C的printf很像嘛。