ขอบคุณคำตอบที่ยอมรับมันน่าสนใจที่จะเรียนรู้เกี่ยวกับการมีอยู่ของยูทิลิตี้manpage-alert
ส่วนหนึ่งของdevscripts
แพ็คเกจซึ่งจริงๆแล้วคือเชลล์สคริปต์
ฉันพยายามติดตั้ง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
เนื่องจากมีสาธารณูปโภค / สคริปต์ที่ดีมากมายรวมอยู่ด้วย ฉันแค่อยากจะรู้ว่าสิ่งที่ทำงานภายใต้ประทุน :-)