Questa sintassi
--exclude-dir={dir1,dir2}
viene espanso dalla shell (ad esempio Bash), non da grep
, in questo:
--exclude-dir=dir1 --exclude-dir=dir2
La quotazione impedirà alla shell di espanderla, quindi non funzionerà:
--exclude-dir='{dir1,dir2}' <-- this won't work
I modelli utilizzati --exclude-dir
sono dello stesso tipo di modelli descritti nella pagina man per l' --exclude
opzione:
--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.
La shell generalmente tenterà di espandere un tale modello stesso, quindi per evitarlo, dovresti citarlo:
--exclude-dir='dir?'
Puoi usare le parentesi graffe e gli schemi di esclusione citati insieme in questo modo:
--exclude-dir={'dir?','dir??'}
Un modello può comprendere più segmenti di percorso:
--exclude-dir='some*/?lse'
Ciò escluderebbe una directory come topdir/something/else
.