ไวยากรณ์นี้
--exclude-dir={dir1,dir2}
ถูกขยายโดยเชลล์ (เช่น Bash) ไม่ใช่โดยgrep
เข้าไปในสิ่งนี้:
--exclude-dir=dir1 --exclude-dir=dir2
การอ้างอิงจะป้องกันไม่ให้เชลล์ขยายดังนั้นจึงไม่ทำงาน:
--exclude-dir='{dir1,dir2}' <-- this won't work
รูปแบบที่ใช้กับ--exclude-dir
เป็นรูปแบบเดียวกับที่อธิบายไว้ใน man page สำหรับ--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
นี้จะไม่รวมไดเรกทอรีเช่น