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.
그러나 실제로는 ...
$ bash --noprofile --norc
bash-4.2$ touch .bar
bash-4.2$ echo .*
. .. .bar
bash-4.2$ GLOBIGNORE=.
bash-4.2$ echo .*
.bar
왜 ..
일치 목록에서 제거됩니까? 내가 아는 한 패턴
.
이 일치 ..
하지 않습니까?
GLOBIGNORE
무시.
하고..
슬래시가없는 패턴으로 설정 하는 것을 깨달았고 GLOBIGNORE는 파일 이름이 아닌 파일 경로를 필터링합니다. nor를GLOBIGNORE=.; echo .*
포함.
하지는..
않지만GLOBIGNORE=.; echo ./.*
(또는echo /bin/.*
) will! 무시.
하고..
당신이 필요로하는 것처럼 모든 globs의에서, 그것은 외모shopt -s extglob
와GLOBIGNORE='?(*/)@(.|..)'
.