1

我想知道一些关于手册页和man实用程序的事情。

man似乎被实现为基本命令的管道,例如(过度简化):

zcat /path/to/man/page.3.gz | groff -man | less

但是,实现了一些逻辑:读取/etc/man.config、读取数据库索引、浏览 manpath 目录等。

1

所以我的第一个问题是:我在哪里可以找到 man 实用程序的源代码?我想存在不同的实现,所以我主要对 GNU 或 SYSV 系统感兴趣(我使用的是 Fedora)。

2

我的第二个问题是关于压缩实用程序和配置。手册页可以使用gzip. Gzipped 页面由man. 但是,xz压缩率似乎比gzip.

是否有一些man兼容的实现xzman这是(https://linux.die.net/man/1/man)手册页的摘录:

如果文件名具有已知的压缩后缀(如 .gz),则 man 假定它是 gzip 压缩的。

这对我来说有点不清楚。从我的角度来看xz,它是一个“已知的压缩后缀”,但它与“人假设它是 gzip 压缩的”相矛盾,而且我找不到将xzandman一起使用的说法。

配置文件/etc/manpath.config允许定义一个不同的寻呼机,例如less. 所以我想知道我们是否可以以同样的方式定义一个不同的“拉链”来xz代替gzip.

4

1 回答 1

0

自我回答

1

许多 Linux 发行版(包括 Fedora)依赖于 man-db 项目。项目网站在这里:

http://www.nongnu.org/man-db/

https://savannah.nongnu.org/projects/man-db

2

在检查源代码并使用正式版本进行测试后,man-db确实支持xz压缩。

于 2020-06-10T09:39:55.397 回答