grep -r --include 无效但 --exclude 有效

grep -r --include not works but --exclude works

在bash,

grep -r --exclude={*.c,} 'HELLO'  // exclude c files

grep -r --include={*.c,} 'HELLO'  // just same with grep -r 'HELLO'

有什么问题?

您没有正确使用大括号。正确的语法应该是

grep -r --include='*.c' 'HELLO' .

(还要注意在末尾添加缺少的文件名参数 .。)

您可以通过在前面放置一个 echo 并检查 shell 将大括号扩展到什么来了解问题所在。

$ echo grep -r --exclude={*.c,} 'HELLO'
grep -r --exclude=*.c --exclude= HELLO