आपके अन्य प्रश्नों से मैं इसे ले रहा हूँ आप ओएस एक्स का उपयोग कर रहे हैं। ओएस एक्स पर डिफ़ॉल्ट एचएफएस + फाइलसिस्टम केस-असंवेदनशील है: आपके पास एक ही निर्देशिका में "एबीसी" और "एबीसी" नामक दो फाइलें नहीं हो सकती हैं, और एक्सेस करने की कोशिश कर रहे हैं। या तो नाम एक ही फ़ाइल के लिए मिल जाएगा। यही बात Cygwin के तहत भी हो सकती है, या केस-असंवेदनशील फाइल सिस्टम के साथ (जैसे FAT32 या साइग्विन के ciopfs ) के साथ कहीं भी हो सकती है।
क्योंकि grep
यह एक वास्तविक निष्पादन योग्य है, इसे फाइलसिस्टम (निर्देशिका में PATH
) पर देखा जाता है। जब आपका खोल या /usr/bin
तो में दिखता हैgrep
GREP
यह grep
निष्पादन योग्य लगेगा ।
शेल बिल्डिंग्स हैं फाइलसिस्टम पर नहीं देखा जाता है: क्योंकि वे अंदर निर्मित होते हैं, वे शेल के अंदर (केस-संवेदी) स्ट्रिंग तुलना के माध्यम से पहुंचते हैं।
आप जो भी सामना कर रहे हैं वह एक दिलचस्प मामला है। जबकि cd
एक अंतर्निहित, पहुंच-केस-संवेदी है, CD
एक निष्पादन योग्य के रूप में पाया जाता है /usr/bin/cd
। cd
निष्पादन बहुत बेकार है क्योंकि cd
वर्तमान खोल निष्पादन वातावरण को प्रभावित करता है, यह हमेशा एक खोल के रूप में प्रदान की जाती है नियमित रूप से निर्मित है, लेकिन वहाँ एक है cd
निष्पादन POSIX के लिये वैसे भी, जो अपने आप के लिए निर्देशिका बदलता है और फिर तुरंत समाप्त हो जाता है, आसपास के खोल छोड़ने यह कहाँ शुरू हुआ
आप इन्हें type
बिलिन के साथ आज़मा सकते हैं :
$ type cd
cd is a shell builtin
$ type CD
CD is /usr/bin/CD
type
आपको बताता है कि जब आप उस कमांड को चलाते हैं तो शेल क्या करेगा। जब आप चलाते हैं cd
तो आप बिलिन तक पहुँचते हैं, लेकिन CD
निष्पादन योग्य पाता है। अन्य बिल्डरों के लिए, बिलिन और निष्पादन योग्य यथोचित संगत (प्रयास echo
) होंगे, लेकिन इसके लिए cd
संभव नहीं है।
alias GREP
या जाँच करेंwhich GREP
।