我最近看到了https://lintian.debian.org/tags/binary-without-manpage.html,它显示了大约14k的联机帮助页。
这意味着某些二进制软件包(而非库)很有可能缺少手册页。如何获得没有手册页的已安装二进制软件包/应用程序列表(非库)?我可能认识一些,并开始为此做出一些贡献。
我最近看到了https://lintian.debian.org/tags/binary-without-manpage.html,它显示了大约14k的联机帮助页。
这意味着某些二进制软件包(而非库)很有可能缺少手册页。如何获得没有手册页的已安装二进制软件包/应用程序列表(非库)?我可能认识一些,并开始为此做出一些贡献。
Answers:
您可以通过manpage-alert
命令列出所有二进制文件而无需手册页
manpage-alert - check for binaries without corresponding manpages
DESCRIPTION
manpage-alert searches the given list of paths for binaries without cor‐
responding manpages.
If no paths are specified on the command line, the path list /bin /sbin
/usr/bin /usr/sbin /usr/games will be assumed
尽管manpage-alert
确实可以满足您的要求,但您应该注意,问题链接中的列表是由其他过程生成的,这是在Lintian中进行的以下检查:
https://github.com/Debian/lintian/blob/master/checks/manpages.pm
因此,可以通过lintian
使用-T binary-without-manpage
选项(以及其他选项来选择要检查的软件包)进行调用来生成它。
多亏了已接受的答案,了解实用程序的存在很有趣,它是程序包的manpage-alert
一部分,devscripts
实际上是一个shell脚本。
我尝试安装,devscripts
但提示安装约70MB的依赖项,因此我跳过了。
下载devscripts
deb包(apt download devscripts
),提取deb并仔细查看manpage-alert
脚本,整个故事“在幕后”是该警报脚本运行以下命令:
man -w -S 1:8:6 <file>
(w =显示位置-S 1:8:6限制了第1,8和6节中的人搜寻)。
在所有的文件下递归地目录执行此操作/bin
,/sbin
,/usr/bin
,/usr/sbin
,和/usr/games
。
此外,重定向man
到2>&1
,还重定向到>/dev/null
,如果文件具有有效的手册页位置,则不会打印任何内容,但是如果man
抱怨“没有手动输入”,则将打印此消息。
作者manpage-alert
进一步man
从“请参阅文档7中没有帮助的人”消息中剥离错误消息,并仅保留第一行= No manual entry for xxxx
。
结果,以下几行将在不安装devscripts软件包的情况下,给出类似的缺少手册页的二进制文件打印:
F=( "/bin/*" "/sbin/*" "/usr/bin/*" "/usr/sbin/*" "/usr/games/*" )
for f in ${F[@]};do
for ff in $f;do
if ! mp=$(man -w -S 1:8:6 "${ff##*/}" 2>&1 >/dev/null);then
echo "$mp" |grep -v "man 7 undocumented" #man 7 undocumented is printed in a separate line.
fi
done
done
PS:${ff##*/}
只保留命令名称剥离路径/usr/bin/
或/bin/
或任何
以上也可以单线运行:
gv@debi64:$ F=( "/bin/*" "/sbin/*" "/usr/bin/*" "/usr/sbin/*" "/usr/games/*" );for f in ${F[@]};do for ff in $f;do if ! mp=$(man -w -S 1:6:8 "${ff##*/}" 2>&1 >/dev/null);then echo "$mp" |grep -v "man 7 undocumented";fi;done;done
No manual entry for ntfsmove
No manual entry for ipmaddr
No manual entry for iptunnel
^C
PS:您可以安装,devscripts
因为其中包含许多不错的实用程序/脚本。我只想知道幕后故事:-)
manpage-alert
脚本开始于#!/bin/sh -e