Dzięki przyjętej odpowiedzi, interesujące było poznanie istnienia narzędzia manpage-alert
, części devscripts
pakietu, która w rzeczywistości jest skryptem powłoki.
Próbowałem zainstalować, devscripts
ale dostałem monit o zainstalowanie około 70 MB zależności, więc pominąłem.
Pobranie devscripts
pakietu deb ( apt download devscripts
), wyodrębnienie deb i przyjrzenie się manpage-alert
skryptowi, cała historia „pod maską” polega na tym, że ten skrypt ostrzegawczy uruchamia polecenie:
man -w -S 1:8:6 <file>
(w = pokaż lokalizację - S 1: 8: 6 ogranicza wyszukiwanie człowieka w sekcjach 1,8 i 6).
Operacja ta wykonywana jest we wszystkich plikach rekurencyjnie pod katalogów /bin
, /sbin
, /usr/bin
, /usr/sbin
, i /usr/games
.
Co więcej, przekierowanie man
do, 2>&1
a także przekierowanie do >/dev/null
, jeśli plik ma prawidłową lokalizację strony man
podręcznika, nic nie jest drukowane, ale jeśli narzeka na „brak ręcznego wprowadzania”, wówczas komunikat ten jest drukowany.
Autor manpage-alert
jest dalej usuwając man
komunikat o błędzie z komunikatu „zobacz man 7 nieudokumentowane w celu uzyskania pomocy” i zachowuje tylko pierwszą linię = No manual entry for xxxx
.
W rezultacie kilka poniższych wierszy da podobny wydruk plików binarnych z brakującymi stronami man bez instalowania pakietu 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##*/}
przechowuje tylko nazwę polecenia odpędzania ścieżkę /usr/bin/
lub /bin/
czy cokolwiek
Powyżej może również działać jako jedna linijka:
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: Możesz oczywiście zainstalować, devscripts
ponieważ zawiera wiele ładnych narzędzi / skryptów. Po prostu lubię wiedzieć, co działa pod maską :-)