Некоторые реализации man, в том числе используемая Ubuntu, заменяют пробелы в терминах поиска дефисами и пытаются найти страницу руководства под этим именем. Так 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чтобы увидеть страницы справочника git и bash), manфактически сначала пытается найти справочную страницу git-bash. Вы можете увидеть это в выходных данных отладки, если вы включите его с помощью -d.
Эта функция man называется «подстраницы», вы можете прочитать исходный код, реализующий подстраницы в man-db (спасибо, Стивен Китт ). Поиск на man(1)странице man для «subpages» также приведет вас к описанию этого поведения под --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
git init