许多程序 (grep, egrep) 和函数 (printf, fprintf, ...) 都记录在单个 man 手册页中。然而,如果这些 man 手册页只能通过一个名称访问,它们将毫无用处。我们不能期望用户记住egrepman 手册页实际上是grepman 手册页。因此,必须使 man 手册页可以通过不同的名称访问。您有几种方法可以实现这一点:
为每个名称创建相同的副本。
使用硬链接连接所有 man 手册页。
使用指向实际 man 手册页的符号链接。
使用groff的 `source' 机制,该机制由.so宏提供。
第一种方法显然是浪费磁盘空间。不推荐第二种方法,因为智能版本的catman程序可以通过查看文件类型或内容来节省大量工作。硬链接会阻止catman变得智能。(请注意,catman的目的是格式化所有 man 手册页,以便它们可以快速显示。)第三种替代方案有一个轻微的缺点:如果灵活性是一个问题,您必须意识到有些文件系统不支持符号链接。 这样做的结果是,最佳方案 (TM) 是使用groff的 source 机制。以下是如何操作:如果您希望您的 man 手册页在第 1 节中以名称 `foo' 和 `bar' 提供,则将 man 手册页放在 foo.1 中,并使 bar.1 看起来像这样
.so man1/foo.1
重要的是要指定man1/目录部分以及文件名 `foo.1',因为当groff由浏览器运行时,它将以手册基本目录作为其当前工作目录 (cwd),并且groff解释.so相对于 cwd 的参数。