Graças a este wiki , descobri que há essa variável GLOBIGNORE
:
The Bash variable (not shopt) GLOBIGNORE allows you to specify patterns a glob should not match. This lets you work around the infamous "I want to match all of my dot files, but not . or .." problem:
$ echo .* . .. .bash_history .bash_logout .bashrc .inputrc .vimrc $ GLOBIGNORE=.:.. $ echo .* .bash_history .bash_logout .bashrc .inputrc .vimrc
O bom é que isso quase não tem efeitos colaterais (quero dizer, com que frequência você deseja corresponder a ..
e .
?), então seria até aceitável para export GLOBIGNORE=.:..
de .bashrc
, e para tarefas manuais basta usar o antigo .*
glob, como no primeiro exemplo no Q.
me@here:~$ set | grep GLOBIGNORE
GLOBIGNORE=.:.
me@here:~$ grep -IR .* -e culprit
.some-app/config: set culprit=1
me@here:~$