Laut bashs Handbuchseite:
GLOBIGNORE
A colon-separated list of patterns defining the set of filenames
to be ignored by pathname expansion. If a filename matched by a
pathname expansion pattern also matches one of the patterns in
GLOBIGNORE, it is removed from the list of matches.
In der Praxis jedoch ...
$ bash --noprofile --norc
bash-4.2$ touch .bar
bash-4.2$ echo .*
. .. .bar
bash-4.2$ GLOBIGNORE=.
bash-4.2$ echo .*
.bar
Warum wird ..aus der Liste der Übereinstimmungen entfernt? Soweit ich weiß, .stimmt das Muster
NICHT überein .., oder?
GLOBIGNOREnur ignorieren.und..in Schrägstrichen ohne Muster und GLOBIGNORE Dateipfade filtert, keine Dateinamen.GLOBIGNORE=.; echo .*wird nicht enthalten.noch.., aberGLOBIGNORE=.; echo ./.*(oderecho /bin/.*) wird! Um zu ignorieren.und..von allen Globs, sieht es so aus, als ob Sieshopt -s extglobund brauchenGLOBIGNORE='?(*/)@(.|..)'.