Таким образом, кажется, что ввод man git init
в приглашении bash в системе Ubuntu 14.04 делает то же самое man git-init
, только я не совсем уверен, как.
man
Страница man
(то есть man man
) , кажется, не позволяет этой конструкцию, если git
не было section
в ручном, но странице людей , кажется, исходит из раздела 1
.
Это недокументированное использование поддерживается man
? Я неправильно понял документацию man
? Происходит ли какая-то другая магия? Кто-нибудь хочет объяснить?
git init
Ответы:
Некоторые реализации
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
опцией:источник
man
реализации), а подстраницы не отключены (например, с помощью--no-subpages
). Я использую Debian, так что это определенно не только Ubuntu.man
. Это ни в коем случае не универсальное или частное общее.