Você pode usar a variável GLOBIGNORE para ocultar os diretórios . e .. . Isso também define automaticamente a opção dotglob , portanto, * agora corresponde a arquivos ocultos e não ocultos. Você pode novamente desanexar manualmente o dotglob , embora isso forneça o comportamento desejado.
Veja este exemplo:
$ ls -a
. .. a .a ..a
$ GLOBIGNORE=".:.."
$ shopt -u dotglob
$ echo * # all (only non-hidden)
a
$ echo .* # all (only hidden)
.a ..a