Resposta curta: expansão glob glob.
O shell recebe sua entrada e expande a parte .*
antes de passá-la para ls
, então você está fazendo com eficiência:
$ ls .bash_history .bash_profile .bashrc .coin_history .emacs ...
Por isso, lista cada entrada. Quando ele vê uma entrada de diretório, lista o conteúdo desse diretório, exatamente como você esperaria que o ls
fizesse. Para ver apenas os arquivos / diretórios em seu diretório de trabalho, use a opção -d
para ls
:
$ ls -d .*
A opção -d
informa ls
para "listar os próprios diretórios, não seus conteúdos" (tirada da página ls
man).