Według strony podręcznika bash:
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.
Jednak w praktyce ...
$ bash --noprofile --norc
bash-4.2$ touch .bar
bash-4.2$ echo .*
. .. .bar
bash-4.2$ GLOBIGNORE=.
bash-4.2$ echo .*
.bar
Dlaczego jest ..usuwany z listy dopasowań? O ile mi wiadomo, wzór
.NIE pasuje .., prawda?
GLOBIGNOREignoruj.i..we wzorcach bez ukośników, a GLOBIGNORE filtruje ścieżki plików, a nie nazwy plików.GLOBIGNORE=.; echo .*nie będzie zawierać.ani.., aleGLOBIGNORE=.; echo ./.*(lubecho /bin/.*) będzie! Aby zignorować.i..ze wszystkich globów, wygląda na to, że potrzebujeszshopt -s extglobiGLOBIGNORE='?(*/)@(.|..)'.