man <command>
并不总是指向“正确的”(如“由which <command>
”给出)。有没有办法确保(或至少增加机会)我获得与实际执行的命令相对应的文档?
例子
与pack
(一个团团脚本)我得到这个:
$ which pack
.../dev/unix_scripts/pack
$ man pack LIBPACK(3)
NAME
libpack - support for connected components
...
请注意,这里.../dev/unix_scripts/pack
实际上没有手册页,所以我想man
告诉我它没有找到它。
尝试过
如果 man 获取可执行文件的完整路径,我可以这样做:
$ which pack | man
这:
$ man 1 pack
No entry for pack in section 1 of the manual
但我不确定仅查看第 1 节(“可执行程序或 shell 命令”)是否过于严格。
一般背景
底层上下文是我正在尝试编写一个(python)函数,该函数将为我提供有关任何“有效”(在意义上which <command>
)可执行文件的一些信息。名称通过 链接到唯一的可执行文件which
。如何获取有关该可执行文件的类似文档的信息?
我(在 stackoverflow 上发布我的问题)[https://stackoverflow.com/questions/73814043/universal-help-for-terminal-commands],它被作为“不是软件问题”而被驱逐,所以我减少了问题并发布在这里。
答案1
man <command>
是不准确的——发行版通常不仅仅包含命令的手册页。这就是您在这里遇到的情况:man pack
向您展示库的文档。
您提到您尝试过man 1 pack
,但您想知道这是否限制太多;在我看来,如果您只对命令感兴趣,那么这是一个很好的方法。在某些情况下,您可能还需要查看第 8 节,但对于非管理命令,man 1 foo
大多数情况下都会匹配命令(我能想到的例外是man 1 intro
)。