Entre v2.11 e v2.12, o grep
changelog menciona apenas a seguinte alteração sobre --exclude-dir
:
grep: fix segfault with -r --exclude-dir and no file operand
Suponho que a mudança de comportamento é um efeito colateral dessa correção (que é exatamente o seu caso), ou seja, um bug foi introduzido, mas como você pode ver, grep
também pode ser segfault neste caso antes da v2. 12 Portanto, não espere que v2.11 seja confiável.
Sugiro que você denuncie esse bug.
Nota: Este segfault foi devido a uma correção na v2.11. O arquivo NEWS
diz para v2.11:
The --include, --exclude, and --exclude-dir options now handle
command-line arguments more consistently. --include and --exclude
apply only to non-directories and --exclude-dir applies only to
directories. "-" (standard input) is never excluded, since it is
not a file name.
[bug introduced in grep-2.5]
e para v2.12:
grep no longer segfaults with -r --exclude-dir and no file operand.
I.e., ":|grep -r --exclude-dir=D PAT" would segfault.
[bug introduced in grep-2.11]