Lorsque vous effectuez ls *le, vous êtes en *train de le développer avant de le passer à ls. C'est-à-dire si nous avons trois fichiers ( a, bet c) dans un répertoire ls *en cours d'exécution ls a b c.
Lorsque Bash ne peut pas se développer, il passe à travers la chaîne brute¹. C'est pourquoi vous voyez les caractères génériques dans l'erreur, ainsi qu'un message introuvable. lsessayé d'afficher la liste d'un fichier appelé littéralement *.bash*.
Alors pourquoi cela ne s'est-il pas étendu? Eh bien, par défaut, le globbing (ce que cette extension générique est appelée) ne retournera pas les fichiers cachés. Vous pouvez changer cela avec shopt -s dotglob(cela ne persistera pas à moins que vous ne le colliez dans votre .bashrc- il peut être désactivé par défaut pour une bonne raison, alors soyez prudent), voici une démo rapide:
$ ls  *.bash*
ls: cannot access *.bash*: No such file or directory
$ shopt -s dotglob
$ ls  *.bash*
.bash_aliases  .bash_history  .bash_logout  .bashrc  .bashrc.save
L'exception à cela est - comme vous l'avez déjà montré - lorsque vous avez déjà déclaré explicitement que les fichiers seront masqués avec un modèle comme .bash*. Il remplace simplement le dotglobparamètre par défaut :
$ shopt -u dotglob  # unset dotglob
$ ls .bash*
.bash_aliases  .bash_history  .bash_logout  .bashrc  .bashrc.save
Quoi qu'il en soit, outre cette bizarrerie, j'espère que cela vous aidera à comprendre ce qui se passe sous la surface.
Il existe d' autres shoptdrapeaux qui modifient la façon dont fonctionne englobement: extglob, failglob,   globstar, nocaseglobet nullglob. Eux et un tas d'autres shoptdrapeaux sont documentés dans le cadre du manuel Bash .
De même, la page sur la correspondance de motifs devrait permettre une bonne lecture.
¹ Sauf si failglobou nullglobsont définis.