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 *
, ?
, [...]
.