Com o bash, a configuração da variável GLOBIGNORE
special é um valor não vazio que é suficiente para ignorar .
e ..
ao expandir globs. De os documentos do Bash :
The
GLOBIGNORE
shell variable may be used to restrict the set of filenames matching a pattern. IfGLOBIGNORE
is set, each matching filename that also matches one of the patterns inGLOBIGNORE
is removed from the list of matches. If thenocaseglob
option is set, the matching against the patterns inGLOBIGNORE
is performed without regard to case. The filenames.
and..
are always ignored whenGLOBIGNORE
is set and not null. However, settingGLOBIGNORE
to a non-null value has the effect of enabling the dotglob shell option, so all other filenames beginning with a‘.
’ will match.
Se o definirmos como .:..
, tanto .
como ..
serão ignorados. Como configurá-lo para qualquer coisa não-nula também obterá esse comportamento, podemos defini-lo como apenas .
Então:
GLOBIGNORE=.
rm -rf .*