कमांड-लाइन टूल्स की अपनी स्वत: पूर्ण सूची कैसे होती है?


24

उबंटू में बैश एक उपकरण की विशिष्ट सूची को कैसे जानता है?

उदाहरण के लिए यदि मैं दो बार apt-get और tab टाइप करता हूं तो मैं केवल हटा, अपडेट, अपग्रेड ... आदि देखता हूं, लेकिन किसी अन्य कमांड या वर्तमान निर्देशिका में फ़ाइलों के लिए क्रियाएं नहीं।

मैं गो में एक कमांड-लाइन टूल विकसित कर रहा हूं और यह सुविधा प्रदान करने वाले डिस्ट्रोस के लिए यह सुविधा प्रदान करना चाहता हूं।


1
मैंने आपके शीर्षक और टैग से "ubuntu" को हटा दिया क्योंकि यह अधिक सामान्य प्रश्न के रूप में बेहतर है (उत्तर किसी भी distro के लिए विशिष्ट नहीं है)।
गोल्डीलॉक्स

1
महान प्रश्न, मैं अक्सर यह सोचता हूं, लेकिन इसे देखने का समय कभी नहीं लिया।
akatakritos

जवाबों:


25

यह bash v4 की पूर्णता सुविधाओं का उपयोग करके करता है। के लिए पूरा कोड पैकेज apt-getद्वारा प्रदान किया गया bash-completionहै और पर स्थित है /usr/share/bash-completion/completions/apt-get। ऐसे अनुप्रयोग जो पूर्ण हो चुके हैं और आधार bash-completionपैकेज का हिस्सा नहीं हैं, उनकी पूर्ण लिपियों को अंदर रखते हैं /etc/bash_completion.d

पूर्ण सोर्सिंग के माध्यम से भरी हुई हैं /etc/bash_completion। वास्तव में जहां यह किया जाता है वह डेबियन या उबंटू संस्करणों के आधार पर अलग-अलग होगा। यही कारण है कि बदले में में सब कुछ स्रोत होगा /usr/share/bash-completion/completionsऔर /etc/bash_completion.d


धन्यवाद, यह बताते हैं। इसलिए कार्यान्वयन न केवल डेबियन से उबंटू तक भिन्न होता है, बल्कि समान वितरण के प्रत्येक संस्करण में भी होता है?
17

1
@Amgad यह सभी वितरणों पर समान तरीके से काम करता है। केवल अंतर वे ही हैं जहाँ फाइलें स्थित हैं, और शायद कुछ डिफ़ॉल्ट सेटिंग्स।
गिल्स एसओ- बुराई को रोकना '
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.