因此,man git init
在 Ubuntu 14.04 系统上输入bash 提示符似乎与 相同man git-init
,只是我不太确定如何。
(ie )的man
页面似乎不允许这种构造,除非是手册的 a ,但手册页似乎来自 section 。man
man man
git
section
1
这是man
?支持的未记录用法?我误解了 的文档man
吗?是否有其他魔法发生?有人愿意解释吗?
der*_*ert 72
的某些实现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 中实现子页面的源代码(感谢Stephen Kitt)。搜索“子页面”的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
Run Code Online (Sandbox Code Playgroud)