Le pagine man di tutti i comandi sono archiviati in /usr/share/man/ directory in Linux. Le pagine man sono compresse in gzip (.gz). Curioso di sapere quale comando ha la pagina di manuale più grande sul tuo sistema Linux? Qui significa più grande, sto parlando del numero di righe in una pagina man. Non si tratta della dimensione del file o del numero di pagine quando viene stampato. Se ti sei mai chiesto come trovare la pagina man più lunga nelle distribuzioni Linux e Unix, segui uno dei metodi indicati qui.
Trova la pagina man più lunga in Linux
Possiamo trovare le pagine man più grandi e più lunghe contando il numero di righe e parole in esse contenute. Il WC comando viene utilizzato per contare il numero di righe e parole in un file. Ad esempio, per contare il numero di righe in ls pagina man del comando, esegui:
$ man ls | wc -l
Allo stesso modo, per contare il numero di parole nella pagina man di ls, usa -w segnala come sotto.
$ man ls | wc -w

Trova il numero di righe e parole in una pagina man in Linux
Tuttavia, contare il numero di righe in ogni pagina man è noioso, richiede tempo e probabilmente un'idea stupida per scoprire le pagine man più lunghe dell'intero sistema. Possiamo trovarlo facilmente usando un ciclo for come di seguito.
for i in {1..8}; do f=/usr/share/man/man$i/$(ls -1S /usr/share/man/man$i/ | head -n1); printf "%s: %9d\n" "$f" $(man "$f" 2>/dev/null | wc -l); done
Questo comando analizzerà le directory man (da 1 a 8) e visualizzerà la pagina man più lunga in ciascuna directory in ordine decrescente. Ci vorranno alcuni minuti a seconda del numero di pagine man nel tuo sistema.
Ecco l'output del mio sistema Ubuntu 18.04:
/usr/share/man/man1/ffmpeg-all.1.gz: 25468 /usr/share/man/man2/perf_event_open.2.gz: 1732 /usr/share/man/man3/Net::SSLeay.3pm.gz: 8738 /usr/share/man/man4/st.4.gz: 423 /usr/share/man/man5/proc.5.gz: 3087 /usr/share/man/man6/espdiff.6.gz: 50 /usr/share/man/man7/groff_mdoc.7.gz: 1826 /usr/share/man/man8/dnsmasq.8.gz: 1337

Trova la pagina man più lunga in Linux e Unix
Come puoi vedere, la pagina man più lunga è ffmpeg-all con 25468 righe in totale.
Puoi eseguire un controllo incrociato con wc comando come di seguito.
$ man ffmpeg-all | wc -l 25468
Se vuoi trovare l'uomo più lungo in base al numero di parole anziché alle righe, esegui:
for i in {1..8}; do f=/usr/share/man/man$i/$(ls -1S /usr/share/man/man$i/ | head -n1); printf "%s: %9d\n" "$f" $(man "$f" 2>/dev/null | wc -w); done
Risultato di esempio:
/usr/share/man/man1/ffmpeg-all.1.gz: 130475 /usr/share/man/man2/perf_event_open.2.gz: 11031 /usr/share/man/man3/Net::SSLeay.3pm.gz: 37886 /usr/share/man/man4/st.4.gz: 4358 /usr/share/man/man5/proc.5.gz: 22939 /usr/share/man/man6/espdiff.6.gz: 294 /usr/share/man/man7/groff_mdoc.7.gz: 11919 /usr/share/man/man8/dnsmasq.8.gz: 16875
Controlla se è corretto usando il comando:
$ man ffmpeg-all | wc -w 130475
Un semplice script per trovare la pagina man più lunga in Linux
Ecco un semplice script BASH per trovare la pagina man più lunga in un sistema Linux.
Crea un file, ad esempio longman.sh (abbreviazione di uomo più lungo pagina):
$ nano longman.sh
Aggiungi le seguenti righe:
#!/usr/bin/env bash cd /usr/share/man/ for fn in $(find -maxdepth 1 -type d -iname 'man[1-8]'); do fn=${fn#./} ls -1Sp "$fn" | head -n 10 | sed -Ee "s,^,$PWD/$fn/," | while read manpage; do shortname=$(echo "$manpage" | sed -e "s,$PWD/man,," -e "s,/,"$'\t'",") printf '%9d\t%s\n' $(man "$manpage" 2>/dev/null | wc -l) "$shortname" done done | sort -n
Se vuoi contare il numero di parole anziché le righe, usa wc -w nello script di cui sopra. Questo script prende i primi 10 in ogni man dir, compila una tabella e la ordina in base al numero di righe. Esclude anche le sezioni numerate da 1 a 8 se NON esistono sul tuo sistema.
Salva e chiudi il file e rendilo eseguibile usando il comando:
$ chmod +x longman.sh
Ora, esegui questo script per trovare la pagina man più lunga nel tuo sistema:
$ ./longman.sh
La pagina man più lunga viene visualizzata in basso. Se vuoi visualizzare la pagina man più lunga in alto, usa "sort -rn" nello script sopra.
Risultato di esempio:
[...] 14236 1 ffmpeg-filters.1.gz 15470 1 x86_64-linux-gnu-g++-7.1.gz 15470 1 x86_64-linux-gnu-gcc-7.1.gz 20579 1 ffplay-all.1.gz 20797 1 ffprobe-all.1.gz 24856 1 ffserver-all.1.gz 25468 1 ffmpeg-all.1.gz

Uno script Bash per trovare la pagina man più lunga in Linux
Il numero al centro indica la sezione della pagina man .
Per conoscere maggiori dettagli sulle pagine man, esegui:
$ man man
$ man -k man
$ info man
Lettura consigliata:
- Come installare Man Pages Of Commands mancanti su Ubuntu
- Come creare e gestire le tue pagine man
Spero che questo sia stato utile.