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/*