Em:
grep -irl --exclude=\*.{log,class,fuegoclass,dat}* --exclude-dir={build,system,lib} data
Em zsh
e bash
, --exclude=\*.{log,class,fuegoclass,dat}*
expande primeiro para --exclude=\*.log* --exclude=\*.class* --exclude=\*.fuegoclass* --exclude=\*.dat*
e, por causa do *
sem aspas, cada um é tratado como um padrão para executar a globulação.
Por exemplo, --exclude=\*.log*
expandirá para a lista de arquivos no diretório atual cujo nome começa com --exclude=*.log
.
Se algum dos globs não tiver correspondência, em zsh
, o comando será cancelado. Em bash
, os globs se expandirão para si mesmos.
Aqui, você não quer globbing, então você deve citar todos os caracteres globbing (em zsh
e bash
, zsh
é gentil o suficiente para apontar seu erro para você).
grep -irl --exclude=\*.{log,class,fuegoclass,dat}\* --exclude-dir={build,system,lib} data