Ich versuche die folgenden Globs in einer Bash-Shell:
$ ls -d .*
. .. .a .ab
$ ls .a*
.a .ab
$ ls .[!.]*
.a .ab
$ ls .[!.]?*
.ab
Sollte der letzte Ausdruck nicht „ein Punkt gefolgt von genau einem Nicht-Punkt, gefolgt von null oder mehr Zeichen“ bedeuten? Warum wird keine Übereinstimmung gefunden .a
?
Antwort1
Sie irren sich. Es bedeutet „ein Punkt, gefolgt von genau einem Nicht-Punkt, gefolgt von einem Zeichen, gefolgt von null oder mehr Zeichen“. .a
hat nicht genug Zeichen, um damit übereinzustimmen.
Aber im Ernst, einfach einstellen dotglob
.