हालांकि यह सच है कि एक कमांड स्वयं ग्लोबिंग को बंद नहीं कर सकता है, एक उपयोगकर्ता के लिए यूनिक्स शेल को किसी विशेष कमांड को ग्लोब नहीं करने के लिए कहना संभव है। यह आमतौर पर शेल की कॉन्फ़िगरेशन फ़ाइलों को संपादित करके पूरा किया जाता है। कमांड foo
को कमांड पथ के साथ पाया जा सकता है, निम्न विन्यास फाइल में जोड़ा जाना चाहिए:
श, बश और क्ष शैल के लिए:
alias foo='set -f;foo';foo(){ command foo "$@";set +f;}
Csh और tcsh गोले के लिए:
alias foo 'set noglob;\foo \!*;unset noglob'
Zsh शेल के लिए:
alias foo='noglob foo'
कमांड पथ का उपयोग करने की आवश्यकता नहीं है। मान लें कि कमांड फू को निर्देशिका में संग्रहीत किया जाता है ~ / बिन, तो ऊपर बन जाएगा:
श, बश और क्ष शैल के लिए:
alias foo='set -f;foo';foo(){ ~/bin/foo "$@";set +f;}
Csh और tcsh गोले के लिए:
alias foo 'set noglob;$home/bin/foo \!*;unset noglob'
Zsh शेल के लिए:
alias foo='noglob ~/bin/foo'
उपरोक्त सभी को Apple के OSX 10.9.2 का उपयोग करके परीक्षण किया गया था। नोट: उपरोक्त कोड को कॉपी करते समय, किसी भी स्थान को हटाने के बारे में सावधान रहें। वे महत्वपूर्ण हो सकते हैं।
अपडेट करें:
उपयोगकर्ता जियरा ने बताया है कि एक बैश शेल के मामले में
alias foo='set -f;foo';foo(){ ~/bin/foo "$@";set +f;}
के साथ प्रतिस्थापित किया जा सकता है
reset_expansion(){ CMD="$1";shift;$CMD "$@";set +f;}
alias foo='set -f;reset_expansion ~/bin/foo'
जो फ़ंक्शन फू की आवश्यकता को समाप्त करता है।
इस दस्तावेज़ को बनाने के लिए उपयोग की जाने वाली कुछ वेब साइटें:
pwd
,echo *
बस है*