A expansão de * é feita pelo shell executando o comando.
Por padrão, shells omitem arquivos dot (arquivos ocultos).
A solução mais simples e mais portátil (não zsh) seria usar:
$ grep Hello * .[!.]*
O segundo glob .[!.]* é equivalente a .[^.]* e é necessário para alguns shells (use o formulário ^ para zsh, csh e tcsh ou .[~.]* para rc / es ). br>
Faz com que os arquivos de pontos apareçam na lista para o grep.
Se houver necessidade de processar nomes de arquivos diferentes de .. iniciando com 2 pontos, adicione um terceiro glob Página de referência do FAQ do UNIX :
$ grep Hello * .[!.]* ..?*
Se você quiser ver o que está acontecendo, faça:
echo grep Hello * .[!.]* ..?*
E teste por que isso não funciona: echo grep Hello * .*
ksh | bash
Em ksh ou bash com extglob ativo (ativado por padrão no uso interativo para o bash):
grep Hello .!(.|) *
Ou apenas para bash, basta usar o dotglob:
shopt -s dotglob; grep Hello *
zsh
grep Hello *(D.)