LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: seamonkey

zsh

[复制链接]
发表于 2006-7-5 15:01:17 | 显示全部楼层
我什么地方没搞清?
我看你的态度有问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-5 15:03:29 | 显示全部楼层
非得跟你争个明白不可了

grep pattern *.c -R

能深入子目录?
回复 支持 反对

使用道具 举报

发表于 2006-7-5 15:05:59 | 显示全部楼层
可以,前提是目录中有.c文件,我刚才就已经说的很清楚了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-5 15:07:13 | 显示全部楼层
你老就不能亲自动手实验一下

cd /usr/include

grep define *.h -R

看看能不能深入子目录。
回复 支持 反对

使用道具 举报

发表于 2006-7-5 15:18:45 | 显示全部楼层
呵呵,你说的对

grep -R pattern * 可以,特定*.h的确不行
以前倒一直没注意,这可能是glob的问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-5 15:21:22 | 显示全部楼层
终于争出个结果了。。。
回复 支持 反对

使用道具 举报

发表于 2006-7-5 15:23:21 | 显示全部楼层
不争哪有结果
不争不知道

无论如何,bash这一点的确做得不好,他应该是可以深入目录下去的
回复 支持 反对

使用道具 举报

发表于 2006-7-5 15:35:22 | 显示全部楼层
刚刚思考了一下这个问题,初步得出这样一个解释

当指定*时,目录也被glob了进来
指定*.h时,目录便不符合*.h,没有被glob进来
这就是为什么递归停留在当前目录而没有递归下去,而*却可以递归下去的原因

这只是个人理解,欢迎探讨
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-5 15:37:46 | 显示全部楼层
我心脏有问题,一激动要出人命的:(

这个功能似乎只有zsh一家有,对于yongjian版主说的bash也有recursive globbing的说法还是表示不解。

zsh的扩展功能多得可能"连作者自己都不全部了解",这些扩展功能是否都要实现到shell中,那就见仁见智了。就像vim vs emacs一样,永远争论不出结果的。
回复 支持 反对

使用道具 举报

发表于 2006-7-5 15:41:59 | 显示全部楼层
对于zsh的recursive globbing
grep pattern /path/to/dir/**/*.c
我理解他就是用**来代表任意目录,所有目录都被匹配,而不受*.c影响,从而使得递归得以继续深入
记得好像java里也有类似的东西
回复 支持 反对

使用道具 举报

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

本版积分规则

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