我有一个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
然而,像
ls
和grep
这样的程序在使用相同文件夹中的**/*.h
通配符调用时没有任何问题。为什么zsh
在调用我的程序时会失败?zsh
如何扩展通配符?编辑:我在cygwin上使用zsh。