LinuxSir.cn,穿越时空的Linuxsir!

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

zsh

[复制链接]
 楼主| 发表于 2006-7-5 15:43:31 | 显示全部楼层
回28贴,就是这样的,这个差不多在所有shell中都是如此。
回复 支持 反对

使用道具 举报

发表于 2006-7-5 15:59:32 | 显示全部楼层
其实bash中也有解决办法
grep DEFINE -R --include=*.h /usr/include
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-5 16:02:43 | 显示全部楼层
grep -R --include=*.h DEFINE *

是不是又多了个.h

呵呵。
回复 支持 反对

使用道具 举报

发表于 2006-7-5 16:10:28 | 显示全部楼层
多了什么.h?
刚才写错了,修改过
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-5 16:14:01 | 显示全部楼层
没什么,现在对了。
回复 支持 反对

使用道具 举报

发表于 2006-7-6 00:18:50 | 显示全部楼层
I was just replying according to your 1 thread.
  1. 递归glob: grep pattern /path/to/dir/**/*.c,连find都省了。
复制代码

In bash, you can do the exactly the same thing with the exactly the same result. And btw, "**" isn't working under zsh. it probably should be "*/*.c".

  1. zsh 34 [2] # grep defind /usr/include/**/*.h
  2. zsh: argument list too long: grep
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-6 08:58:20 | 显示全部楼层
youjian兄,这就是我前面说的,这就是递归globbing会受命令行参数长度的限制,并不是**不起作用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-6 08:59:56 | 显示全部楼层
usr/include/linux/limits.h

  1. #define ARG_MAX       131072  /* # bytes of args + environ for exec() */
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-7-6 11:28:38 | 显示全部楼层
可是
  1. defind /usr/include/**/*.h
复制代码
的实际参数并没有超过limit的限制,问什么还是会报错呢?能告诉我你是怎么在zsh下运行这个命令的吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-6 11:37:43 | 显示全部楼层
这个不是参数长度吧,而是扩展出的所有文件名。

我/usr/include下头文件不太多,所以没超出限制。
回复 支持 反对

使用道具 举报

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

本版积分规则

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