Как перенаправить все мануалы в файлы?

Это смесь. Каждый пакет может быть лицензирован на разных условиях.

Как правило, право изменять его и распространять каждый пакет в основном и юниверсе, некоторые пакеты могут иметь ограничения на это, например, имя и логотип firefox являются товарными знаками, поэтому нельзя использовать без разрешения Mozilla.

Вы можете посмотреть отдельные лицензии на пакеты в / usr / share / doc / * / copyright

0
задан 13 February 2014 в 16:16

2 ответа

Есть много исполняемых файлов в /bin. Если вы хотите скопировать соответствующие man-страницы в файлы, вы используете что-то подобное в своем терминале

for f in /bin/*;do man $(basename $f) > $HOME/man_$(basename $f); done

После выполнения команды вы найдете все man-страницы, соответствующие исполняемым файлам в /bin/ в твой дом. Например, страница руководства, соответствующая ls, будет иметь имя man_ls.txt в вашем доме.

Если вы хотите скопировать только часть, скажем, имя исполняемого файла начинается с r, используйте

for f in /bin/r*;do man $(basename $f) > $HOME/man_$(basename $f); done

Вы можете получить несколько примечаний, например,

No manual entry for <some_executable>
See 'man 7 undocumented' for help when manual pages are not available.

для исполняемые файлы, в которых нет записи man.

Сделайте это для других папок, которые содержат такие исполняемые файлы, как /usr/bin/, /usr/sbin/, /sbin/ и т. Д.

Примечание:

вы можете использовать 2>/dev/null с вашей командой для подавления сообщений об ошибках для исполняемых файлов без участия пользователя. например,

for f in /usr/bin/r*;do man $(basename $f) > $HOME/man_$(basename $f) 2>/dev/null; done

В соответствии с вашим подходом

Перейдите в папку и используйте это для того же результата,

for f in $(whereis -m * | grep '.gz' |awk '{print$1}' |sed s/://g); do man $f > $HOME/man_$f.txt; done
0
ответ дан 13 February 2014 в 16:16

Прежде всего, , почему вам нужен файл, содержащий все страницы руководства? Если это облегчает поиск во всех них по какому-либо ключевому слову, GNU уже предоставляет apropos только для этого:

apropos some-regular-expression

возвращает список всех man-страниц, соответствующих регулярному выражению в их имени или описании.

В любом случае, если вам все еще нужен энциклопедический файл, то, используя apropos, вы можете получить список всех man-страниц в системе, выполнив поиск универсального регулярного выражения:

apropos '.*'

и затем feed результирующий список в команде man:

apropos '.*' | awk '{print $1;}' | xargs man > all-manpages.txt

Вы также можете использовать метод, описанный в ответе на аналогичный вопрос . «Сформировать список всех доступных команд». и что каждый делает ", заменив whatis на man.

0
ответ дан 13 February 2014 в 16:16

Другие вопросы по тегам:

Похожие вопросы: