Man

man git init 如何獲得正確的手冊頁?

  • November 13, 2019

因此,man git init在 Ubuntu 14.04 系統上輸入 bash 提示符似乎與 相同man git-init,只是我不太確定如何。

(ie )的man頁面似乎不允許這種結構,除非是手冊的 a,但手冊頁似乎來自 section 。man``man man``git``section``1

這是受支持的未記錄用法man嗎?我是否誤解了 的文件man?是不是發生了其他的魔法?有人願意解釋嗎?

的一些實現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

引用自:https://unix.stackexchange.com/questions/265262