这个语法
--exclude-dir={dir1,dir2}
通过外壳(例如Bash)而不是通过grep
扩展为:
--exclude-dir=dir1 --exclude-dir=dir2
引用将阻止外壳扩展它,因此这将不起作用:
--exclude-dir='{dir1,dir2}' <-- this won't work
与一起使用的模式与--exclude-dir
该--exclude
选项的手册页中描述的模式相同:
--exclude=GLOB
Skip files whose base name matches GLOB (using wildcard matching).
A file-name glob can use *, ?, and [...] as wildcards, and \ to
quote a wildcard or backslash character literally.
外壳一般 尝试自行扩展这种模式,因此,为避免这种情况,应引用它:
--exclude-dir='dir?'
您可以将花括号和带引号的排除模式一起使用,如下所示:
--exclude-dir={'dir?','dir??'}
模式可以跨越多个路径段:
--exclude-dir='some*/?lse'
这将排除目录topdir/something/else
。