ls -al .*
mostra o conteúdo de todos os diretórios no diretório atual cujos nomes começam com .
(isto é, todos aqueles que correspondem ao shell glob .*
)
No Bash, o .*
glob resolve também para .
e ..
. Como .
representa o diretório atual e ..
o diretório pai, o conteúdo de ambos os diretórios, incluindo todos os arquivos e diretórios ocultos, também é mostrado. 1
.*
também captura arquivos ocultos no diretório atual, mas eles são listados como conteúdo de .
Como explicado em O que significa 'ls --directory'? -d
flag faz com que os próprios diretórios sejam exibidos, em vez de seu conteúdo.
1 este também é o caso em dash, que é o shell vinculado a sh
no Ubuntu. No entanto, outros shells, incluindo zsh e mksh, se comportam de maneira mais intuitiva e não incluem .
e ..
ao expandir .*
. Também vale a pena notar que, enquanto a maioria dos comandos irá operar em ..
e .
quando eles estão incluídos em um .*
glob (incluindo chmod
e chown
- você pode realmente atrapalhar seu sistema com eles) , o comando rm
falhará por design para fazer isso.