Selon la page de manuel de 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.
Mais en pratique ...
$ bash --noprofile --norc
bash-4.2$ touch .bar
bash-4.2$ echo .*
. .. .bar
bash-4.2$ GLOBIGNORE=.
bash-4.2$ echo .*
.bar
Pourquoi est-il ..supprimé de la liste des correspondances? Pour autant que je sache, le motif
.ne correspond PAS .., n'est-ce pas?
GLOBIGNOREignore uniquement.et..dans des modèles sans barre oblique et que GLOBIGNORE filtre les chemins de fichier et non les noms de fichier.GLOBIGNORE=.; echo .*n'inclura pas.ni.., maisGLOBIGNORE=.; echo ./.*(ouecho /bin/.*) le fera! Pour ignorer.et..de tous les globes, il semble que vous ayez besoin deshopt -s extglobetGLOBIGNORE='?(*/)@(.|..)'.