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
)