Bir komutun kendisi globbing'i kapatamayacağı doğru olsa da, bir kullanıcının bir Unix kabuğuna belirli bir komutu globlamamasını söylemesi mümkündür. Bu genellikle bir kabuğun yapılandırma dosyalarını düzenleyerek gerçekleştirilir. Komutun foo
komut yolunda bulunabileceğini varsayarsak, aşağıdakilerin uygun konfigürasyon dosyasına eklenmesi gerekir:
Sh, bash ve ksh kabukları için:
alias foo='set -f;foo';foo(){ command foo "$@";set +f;}
Csh ve tcsh kabukları için:
alias foo 'set noglob;\foo \!*;unset noglob'
Zsh kabuğu için:
alias foo='noglob foo'
Komut yolunun kullanılması gerekmez. Foo komutunun ~ / bin dizininde depolandığını söyleyin, sonra yukarıdakiler şöyle olur:
Sh, bash ve ksh kabukları için:
alias foo='set -f;foo';foo(){ ~/bin/foo "$@";set +f;}
Csh ve tcsh kabukları için:
alias foo 'set noglob;$home/bin/foo \!*;unset noglob'
Zsh kabuğu için:
alias foo='noglob ~/bin/foo'
Yukarıdakilerin tümü Apple'ın OSX 10.9.2'si kullanılarak test edildi. Not: Yukarıdaki kodu kopyalarken, boşlukları silmeye dikkat edin. Önemli olabilirler.
Güncelleme:
Kullanıcı Geira bir bash kabuk durumunda olduğuna işaret eden
alias foo='set -f;foo';foo(){ ~/bin/foo "$@";set +f;}
ile değiştirilebilir
reset_expansion(){ CMD="$1";shift;$CMD "$@";set +f;}
alias foo='set -f;reset_expansion ~/bin/foo'
foo fonksiyonuna olan ihtiyacı ortadan kaldırır.
Bu belgeyi oluşturmak için kullanılan bazı web siteleri:
pwd
,echo *
sadece*