Não há uso de . na expansão de nome de arquivo. Se você usar a expansão de nome de arquivo, os nomes de arquivos que começam com . geralmente são excluídos, a menos que você tenha solicitado explicitamente por eles, usando algo como .* ou .? . / não é um caractere válido em um nome de arquivo, portanto, * não corresponde a / .
$ touch foo .foo; echo *; echo .*; echo ./*; echo; ./.*
foo
.foo
./foo
./.foo
Observe como * e ./* excluíram .foo - mas o primeiro comando echo não usou . e o terceiro echo usou ./ , então o curinga é separado de o . por um / . Para corresponder nomes de arquivos que começam com . , você deve especificar explicitamente os . - .* , ./.* . No entanto, neste caso, o papel de . não é diferente, digamos, do papel de a in a* .
Esta exceção pode ser desativada usando shopt -s dotglob .
Como não há uso especial de . na expansão de nome de arquivo, não há nada para distinguir. Os únicos caracteres especiais na expansão de nome de arquivo são * , ? , [...] .