简体   繁体   中英

How does man find git's subcommand manpages?

On my linux system, I can do "man git log" (note the space), and this will show me the manpage for git-log(1) (with a dash), as expected.

On my MacOSX machine, "man git log" only shows the manual page for git(1).

How does the linux man know that the two arguments "git" and "log" should be combined to find the "git-log" manpage? How would I get the same result in OSX?

This is a feature of the particular implementation of man used on many Linux systems. Referring to the documentation (for man ), it is mentioned in the description of the --no-subpages option:

--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.

Other implementations of man can do different things. For instance (not well documented , but there if you study it), a quick check for man git status on OSX El Capitan shows it tries to find a manual page for status . However, man git-status gives a manual page.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM