zshकुछ गोले में से एक है (दूसरे वाले जा रहे हैं tcsh( उपयोगकर्ताओं के लिए whichएक cshस्क्रिप्ट के रूप में उत्पन्न हुई csh, जिसमें इसकी सीमा भी थी, tcshइसे एक सुधार के रूप में एक बिल्टिन बनाया गया)) जहां whichसे कुछ समझदार होता है क्योंकि यह शेल बिल्ड है, लेकिन किसी तरह आप या आपके ओएस (कुछ rcफ़ाइल के माध्यम से ) इसे सिस्टम whichकमांड के लिए एक कॉल के साथ बदलकर तोड़ दिया जो कि समझदारी से कुछ भी नहीं कर सकता है क्योंकि इसमें शेल के इंटर्न्स तक पहुंच नहीं है, इसलिए यह नहीं जान सकता है कि शेल एक कमांड नाम की व्याख्या कैसे करता है ।
Zsh, के सभी में which, type, whenceऔर whereआदेशों को सब क्या आदेशों के बारे में पता लगाने के लिए उपयोग किया जाता है, builtin लेकिन अलग आउटपुट के साथ कर रहे हैं। वे सभी ऐतिहासिक कारण से वहां हैं, आप उनके सभी व्यवहारों को अलग-अलग झंडे के साथ whenceकमांड के लिए प्राप्त कर सकते हैं ।
आप इस बात का विवरण प्राप्त कर सकते हैं कि प्रत्येक क्या चल रहा है:
info -f zsh --index-search=which
या टाइप करें info zsh, फिर इंडेक्स को साथ लाएं i, और बिलिन नाम दर्ज करें (पूर्णता उपलब्ध है)।
और उपयोग करने से बचें /usr/bin/which। कोई खोल आजकल जहां है कि which जरूरत है। जैसा कि तीमुथियुस कहता है, बिलियन का उपयोग करें जो आपके शेल के लिए प्रदान करता है। अधिकांश POSIX गोले होगा typeआदेश, और आप उपयोग कर सकते हैं command -vकेवल (दोनों ही एक आदेश के पथ प्राप्त करने के लिए typeऔर command -vमें LSB POSIX (लेकिन यूनिक्स नहीं में वैकल्पिक हैं, और किसी भी नहीं रह गया है), वे सब नहीं तो ज्यादातर में उपलब्ध हैं बॉर्न जैसे गोले आपके कभी भी भर जाने की संभावना है)।
(Btw, यह कैसा दिखता /usr/binप्रकट होता है दो बार अपने में $PATH, आप एक जोड़ सकता है typeset -U pathआपके लिए ~/.zshrc)