Odpowiedzi:
W skrócie, w następującej kolejności:
GLOBIGNORE=.
shopt -u dotglob
Po ustawieniu GLOBIGNORE,. i .. są automatycznie ignorowane, więc nie musisz ich ustawiać w GLOBIGNORE, ale jeśli nie masz nic innego do zignorowania, nie będziesz mieć nic do ustawienia.
Za każdym razem, gdy ustawisz GLOBIGNORE na wartość inną niż zero, bash włącza opcję dotglob, więc będziesz musiał ją później wyłączyć; w przeciwnym razie bash rozszerzy *się o pliki zaczynające się od kropki.
., a ..jednak nie foo/.i foo/... Możesz użyć GLOBIGNORE=.:*/.:*/..tej opcji, aby działała również z nazwami ścieżek.
W nieznanym systemie, w którym mam za mało czasu na sprawdzenie używanych ustawień (takich jak GLOBIGNORE), używam następującego niezawodnego wzoru:
command .??*
.i ..bez względu na środowisko..a
dotglobwłączyć, więc ustawienieGLOBIGNOREbrzmi idealnie.