Secondo la pagina del manuale di 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.
Comunque in pratica ...
$ bash --noprofile --norc
bash-4.2$ touch .bar
bash-4.2$ echo .*
. .. .bar
bash-4.2$ GLOBIGNORE=.
bash-4.2$ echo .*
.bar
Perché viene ..
rimosso dall'elenco delle corrispondenze? Per quanto ne so, il modello
.
NON corrisponde ..
, vero?
GLOBIGNORE
ignora.
e..
in modelli senza barra e GLOBIGNORE filtra i percorsi dei file non i nomi dei file.GLOBIGNORE=.; echo .*
non includerà.
né..
, maGLOBIGNORE=.; echo ./.*
(oecho /bin/.*
) lo farà! Per ignorare.
e..
da tutti i globs, sembra che tu abbia bisognoshopt -s extglob
eGLOBIGNORE='?(*/)@(.|..)'
.