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