我想知道一些关于手册页和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
兼容的实现xz
?man
这是(https://linux.die.net/man/1/man)手册页的摘录:
如果文件名具有已知的压缩后缀(如 .gz),则 man 假定它是 gzip 压缩的。
这对我来说有点不清楚。从我的角度来看xz
,它是一个“已知的压缩后缀”,但它与“人假设它是 gzip 压缩的”相矛盾,而且我找不到将xz
andman
一起使用的说法。
配置文件/etc/manpath.config
允许定义一个不同的寻呼机,例如less
. 所以我想知道我们是否可以以同样的方式定义一个不同的“拉链”来xz
代替gzip
.