Некоторые реализации 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