
Esto funciona para mí, ya que excluye el directorio "foo" del directorio raíz de la búsqueda:
grep -rn --exclude-dir=foo 'custom'
Sin embargo, esto no funciona:
grep -rn --exclude-dir=foo/bar 'custom'
Pero todavía se busca en el directorio "foo/bar". También lo probé con comillas:
grep -rn --exclude-dir='foo/bar' 'custom'
Estoy usando Ubuntu 20.
Actualizar
Aunque no es perfecto, utilicé esta solución alternativa:
grep -rn 'custom'|grep -v 'foo/bar'
Esto no podrá encontrar líneas que contengan "foo/bar" y "custom".
Respuesta1
Me encontré con el mismo problema, lo resolví llamando
grep -rn --exclude="**/foo/**" 'custom'
Respuesta2
Utilice este operador "*variable*"
como comodín que coincida con cualquier directorio que desee excluir de la búsqueda grep.
En tu caso,
grep -rn --exclude-dir={"*foo*"} 'custom'
excluirá el directorio o subdirectorio con un nombre de 'foo'.
grep -rn --exclude-dir={"*foo*","*bar*"} 'custom'
excluirá cualquier directorio y subdirectorio con un nombre de 'foo' y 'bar'.