No Bash, um glob não será expandido para arquivos ocultos, portanto, se você quiser pesquisar all os arquivos em um diretório, será necessário especificar os arquivos ocultos .* e não oculto * .
Para evitar os erros "É um diretório", você pode usar -d skip , mas no meu sistema também recebo um erro grep: .gvfs: Permission denied , então sugiro usar -s , que oculta todas as mensagens de erro.
Então o comando que você está procurando é:
grep -s "string" * .*
Se você estiver pesquisando arquivos em outro diretório:
grep -s "string" /path/to/dir/{*,.*}
Outra opção é usar a opção dotglob shell, que fará com que um glob inclua arquivos ocultos.
shopt -s dotglob
grep -s "string" *
Para arquivos em outro diretório:
grep -s "string" /path/to/dir/*