Man 希望列出的 man 目录$MANPATH
或$(manpath)
按部分拆分为名为 的目录"man$section"
。这会重复联机帮助页后缀中已有的部分信息。 (例如,对于ls.1.gz
,.1
信息会在 中重复man1/
)。为什么不跳过中间人目录并制作人行道当扁平化对于目录来说似乎足够好时,目录扁平化$PATH
?
答案1
它不会重复信息:在给定目录中可以有比普通“.1”或“.3”更多的后缀,例如(取决于平台)数字后面的字母。例如,Debian 在“.3”后面带有应用程序后缀,例如 Perl 模块的“pm”。
这是来自 的清单(部分)/usr/share/man/man1
,用于说明:
-rw-r--r-- 1 root 592 Apr 17 2012 411toppm.1.gz
-rw-r--r-- 1 root 3827 Tue 15:21:13 CA.pl.1ssl.gz
lrwxrwxrwx 1 root 17 Feb 19 2012 GET.1p.gz -> lwp-request.1p.gz
lrwxrwxrwx 1 root 17 Feb 19 2012 HEAD.1p.gz -> lwp-request.1p.gz
lrwxrwxrwx 1 root 17 Feb 19 2012 POST.1p.gz -> lwp-request.1p.gz
-rw-r--r-- 1 root 2490 Aug 29 2011 SOAPsh.1p.gz
-rw-r--r-- 1 root 2428 Aug 29 2011 XMLRPCsh.1p.gz
-rw-r--r-- 1 root 5112 Apr 5 2012 alien.1p.gz
-rw-r--r-- 1 root 3130 Oct 26 2012 apt-show-versions.1p.gz
-rw-r--r-- 1 root 4011 Tue 15:21:13 asn1parse.1ssl.gz
-rw-r--r-- 1 root 2847 Tue 15:21:13 c_rehash.1ssl.gz
-rw-r--r-- 1 root 9796 Tue 15:21:13 ca.1ssl.gz
-rw-r--r-- 1 root 6410 Tue 15:21:13 ciphers.1ssl.gz
-rw-r--r-- 1 root 8419 Tue 15:21:13 cms.1ssl.gz
-rw-r--r-- 1 root 6394 Jun 26 2012 cpanm.1p.gz
-rw-r--r-- 1 root 2631 Tue 15:21:13 crl.1ssl.gz
-rw-r--r-- 1 root 2636 Tue 15:21:13 crl2pkcs7.1ssl.gz
-rw-r--r-- 1 root 2272 Jun 19 2014 dbilogstrip.1p.gz
-rw-r--r-- 1 root 3255 Jun 19 2014 dbiprof.1p.gz
此外,各个目录被分开,因为在使用cat
目录的系统中,文件名(通常)会重复。
最后 - 进行拆分以保持目录大小(相对)较小并提高性能。
答案2
在这一点上,我想说主要原因是向后兼容性——目录分割从一开始就存在,在V4(这是 UNIX 的第四个版本,而不是 SVR4)。当时可能有很多原因:避免处理单个目录中的许多文件,将手册页视为书籍的一部分......