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.)