奇怪的zsh过滤行为

时间:2015-05-09 12:39:40

标签: zsh qualifiers

这样做的:

print -l ./somedir/**/*.{png,jpg}提供了pngjpg文件的预期列表,并且它们都有两种类型,但是

print -l ./somedir/**/*.{png,jpg}(Lk+50)未列出超过50k的jpg个文件,说no matches found ./somedir/**/*.png(Lk+50)

为什么它会在此png停止,而不是在jpg上展开?

1 个答案:

答案 0 :(得分:0)

根据文件说:

  

请注意,大括号扩展不是文件名生成的一部分(globbing);在生成文件名之前,诸如* / {foo,bar}之类的表达式被分成两个单独的单词* / foo和* / bar。特别要注意的是,如果两个表达式中的任何一个不匹配,则可能会产生“不匹配”错误;这与* /(foo | bar)形成对比,后者被视为单一模式,但具有相似的效果。

我得出的结论是,我必须写:

// Open as text file FILE *f = fopen(name, "w"); if (f == NULL) { printf("Error opening file!\n"); exit(1); } // write some text const char *text = "Write this to the file"; fprintf(f, "Some text: %s\n", text); fclose(f); ,以获得所需的结果。