बीच क्या अंतर है which
और whereis
?
type
कि बेहतर है। यह परिभाषित
बीच क्या अंतर है which
और whereis
?
type
कि बेहतर है। यह परिभाषित
जवाबों:
कैसे के बारे में सीखने whereis
और which
उपयोग करने के बारे में whatis
?
$ whatis which
which (1) - shows the full path of (shell) commands
$ whatis whereis
whereis (1) - locate the binary, source, and manual page files for a command
मूल रूप से, whereis
"संभवतः उपयोगी" फ़ाइलों के which
लिए खोज करता है, जबकि केवल निष्पादन योग्य के लिए खोज करता है।
मैं शायद ही कभी उपयोग करता हूं whereis
। दूसरी ओर, which
बहुत उपयोगी है, विशेष रूप से लिपियों में। which
निम्नलिखित प्रश्न का उत्तर है: यह आदेश कहां से आया है?
$ which ls
/bin/ls
$ whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.bz2 /usr/share/man/man1/ls.1.bz2
whereis
, न कि वह जिसके लिए चलता है which
।
which
वास्तविक रास्ता दिखाता है। क्या आप सुनिश्चित हैं कि जिस मार्ग द्वारा इंगित किया गया which
है, वह केवल उस मार्ग के लिए सहानुभूति नहीं है जिसके द्वारा इंगित किया गया है whereis
? हो सकता है कि वह शेल उर्फ हो। बैश में, दौड़ने की कोशिश करें type your_cmd_here
।
whereis
एक निर्दिष्ट कमांड के लिए मानक * निक्स स्थान खोजता है।
which
आपके उपयोगकर्ता-विशिष्ट PATH को खोजता है (जिसमें कुछ ऐसे स्थान शामिल हो सकते हैं जहाँ खोज करता है, और दूसरों को शामिल नहीं कर सकता है - इसमें कुछ ऐसे स्थान भी शामिल हो सकते हैं जो whereis
आपके PATH में जुड़ने पर खोज नहीं करते हैं)
उनके मैन पेजों का उद्धरण:
जिसमें :
जिसमें निर्दिष्ट स्रोत के लिए स्रोत / बाइनरी और मैनुअल अनुभागों का पता चलता है।
उदाहरण के लिए :
$ whereis php
php: /usr/bin/php /usr/share/php /usr/share/man/man1/php.1.gz
यानी, "php" निष्पादन योग्य, और कुछ अन्य सामान (जैसे मैन पेज)।
और जो :
जो वर्तमान परिवेश में निष्पादित की गई फ़ाइलों के पथनाम को लौटाता है
उदाहरण के लिए :
$ which php
/usr/bin/php
यानी, केवल "php" निष्पादन योग्य है।
जो पर्यावरण चर PATH द्वारा निर्दिष्ट निर्देशिकाओं में निष्पादन योग्य है। और अगर पता चला, तो इस निष्पादन योग्य का पूरा मार्ग प्रिंट हो जाएगा।
$ जो ls
/ bin / ls
$ जो ifconfig
$ # नो आउटपुट है, क्योंकि ifconfig केवल रूट के PATH में मौजूद है।
whereis निष्पादनयोग्य, स्रोत फ़ाइलों, और मैनुअल पृष्ठों एक डेटाबेस सिस्टम द्वारा स्वत: निर्मित उपयोग करने के लिए खोज।
$ कम से
कम
लेकिन ऐसा लगता है कि whereis और पता लगाने में एक ही डेटाबेस का उपयोग नहीं करते। जब मैं एक सॉफ्टवेयर स्थापित और फिर इस्तेमाल किया whereis और पता लगाने के लिए इस सॉफ्टवेयर के लिए खोज करने के लिए तुरंत। इसका परिणाम यह है कि जहां इस सॉफ्टवेयर से संबंधित कुछ फाइलों का पता लगा सकते हैं, वहीं पता नहीं लगा सकते हैं। क्या वे वास्तव में विभिन्न डेटाबेस का उपयोग करते हैं? डेटाबेस कैसे काम करता है? - फिर, कैसे एक पेडेंट होने से इनकार करते हैं? :)