Завдяки прийнятій відповіді було цікаво дізнатись про існування утиліти manpage-alert
, частини devscripts
пакета, яка насправді є скриптом оболонки.
Я спробував встановити, devscripts
але отримав підказку встановити близько 70 Мб залежностей, тому я пропустив.
Завантажуючи 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
оскільки в комплекті є багато приємних утиліт / сценаріїв. Мені просто подобається знати, що працює під капотом :-)