`मैन गेट इनिट` को सही मैन पेज कैसे मिलता है?


52

तो ऐसा लगता है कि man git initउबंटू 14.04 सिस्टम पर एक बैश प्रॉम्प्ट में टाइपिंग वही करता है man git-init, केवल मुझे यकीन नहीं है कि कैसे।

manके लिए पृष्ठ man(यानी man man), इस संरचना के लिए अनुमति देने के लिए जब तक प्रतीत नहीं होता है gitएक था sectionमैनुअल की है, लेकिन आदमी पृष्ठ अनुभाग से आते हैं लगता है 1

क्या यह एक अनिर्दिष्ट उपयोग द्वारा समर्थित है man? क्या मैंने इसके दस्तावेज को गलत समझा है man? क्या कुछ और जादू हो रहा है? किसी को समझाने की परवाह?


प्रतीत होता है जैसे कि Git-init बस के लिए एक आवरण हो सकता हैgit init
जेफ स्कालर

जवाबों:


71

manउबंटू द्वारा उपयोग किए जाने वाले सहित कुछ कार्यान्वयन , अपने खोज शब्दों में रिक्त स्थान को हाइफ़न के साथ बदल देते हैं और उस नाम के तहत एक मैनुअल पेज खोजने का प्रयास करते हैं। तो man git initजैसा दिखता है वैसा ही दिखता है man git-init। इसी तरह, man run partsऔर man ntfs 3gकाम (यदि आपके पास run-partsऔर ntfs-3gआपके सिस्टम पर है)।

यह केवल शब्द जोड़े के साथ ऐसा man git annex syncकरता है , हालांकि, इसलिए काम नहीं करता है (हालांकि man git-annex syncकरता है, जैसा कि फिर से एक शब्द जोड़ी है)।

वास्तव में, जब आप दो मैनुअल पेज (उदाहरण के लिए, man git bashगिट और बैश मैनपेज दोनों को देखने के लिए) मांगते हैं, तो manवास्तव में सबसे पहले git-bashमैनपेज देखने की कोशिश करते हैं । आप इसे डिबग आउटपुट में देख सकते हैं यदि आप इसे सक्षम करते हैं -d

इस मैन फ़ीचर को "सबपेज" कहा जाता है। आप मैन-डीबी में उप-कोड लागू करने वाले सोर्स कोड को पढ़ सकते हैं (धन्यवाद, स्टीफन बिट )। "सबपेज" के लिए man(1)मेनपेज की खोज करने से आपको --no-subpagesविकल्प के तहत इस व्यवहार का विवरण मिलेगा :

--no-subpages
      By default, man will try to interpret pairs of manual page
      names given on the command line as equivalent to a single
      manual page name containing a hyphen or an underscore.  This
      supports the common pattern of programs that implement a
      number of subcommands, allowing them to provide manual pages
      for each that can be accessed using similar syntax as would be
      used to invoke the subcommands themselves.  For example:

        $ man -aw git diff
        /usr/share/man/man1/git-diff.1.gz

      To disable this behaviour, use the --no-subpages option.

        $ man -aw --no-subpages git diff
        /usr/share/man/man1/git.1.gz
        /usr/share/man/man3/Git.3pm.gz
        /usr/share/man/man1/diff.1.gz

यह CentOS 6.6 पर काम नहीं करता है। क्या यह केवल उबंटू है?
वाइल्डकार्ड

1
@Wildcard जो हिस्सा काम नहीं लगता है? यह तब तक काम करना चाहिए जब तक सेंटोस मैन-डीबी (अन्य manकार्यान्वयन हैं) का उपयोग कर रहा है , और उपपृष्ठ अक्षम नहीं किए गए हैं (उदाहरण के लिए, साथ --no-subpages)। मैं डेबियन का उपयोग कर रहा हूं, इसलिए यह निश्चित रूप से सिर्फ उबंटू नहीं है।
derobert

2
महत्वपूर्ण बात यह है कि यह विशिष्ट कार्यान्वयन के लिए अद्वितीय है man। यह किसी भी तरह से सार्वभौमिक या विशेष रूप से सामान्य नहीं है।
चेपनर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.