De acordo com a página de manual do bash:
bash varre cada palavra para os caracteres *,? e [. Se um desses caracteres aparecer, a palavra será considerada um padrão e substituída por uma lista classificada alfabeticamente de nomes de arquivos que correspondem ao padrão
e do nó info para ls
O programa `ls 'lista informações sobre arquivos (de qualquer tipo, incluindo diretórios). Opções e argumentos de arquivo podem ser misturados arbitrariamente, como de costume.
Para argumentos de linha de comando que não são opções, diretórios, por padrão, 'ls' lista o conteúdo dos diretórios, não recursivamente, e omite arquivos com nomes começando com '.'. Para outros argumentos não opcionais, por padrão, `ls 'lista apenas o nome do arquivo. Se nenhum argumento não opcional for especificado, 'ls' listará o conteúdo do diretório atual.
portanto, quando você fornece ls d*
, d * é expandido para a lista classificada de todos os nomes de arquivos / diretórios começando com d. Então você comando se torna
ls dump
e como dump é um nome de diretório, você obtém a listagem de todos os arquivos no diretório "dump", mas quando você fornece ls D*
, D * é expandido para " Dropbox de downloads de documentos da área de trabalho ", para que o comando se torne
ls Desktop Documents Downloads Dropbox
e como todos esses são diretórios, você obtém a listagem de arquivos em um diretório individual. Se houvesse um arquivo começando com D no diretório atual, ele seria listado separadamente.