我有一个 C 程序,它通过遍历argv
变量来显示它的命令行。
#include <stdio.h>
int main(int argc, char *argv[]){
int i = 0;
printf("----------\n");
for(i = 0; i < argc; i++)
printf("%s\n", argv[i]);
return 0;
}
我在一个包含大型 C++ 源代码树的文件夹中调用了该程序,如下所示:
./a.out **/*.h
输出:
zsh: argument list too long: ./a.out
但是,当使用同一文件夹中的 glob 调用程序时,喜欢ls
并且可以正常工作。为什么调用我的程序时会失败?如何扩展通配符?grep
**/*.h
zsh
zsh
编辑:我在 cygwin 上使用 zsh。