Soluzione: le pipe
Keywords: guide

Next: Multitasking Up: Standard Input e Standard Previous: Redirezione dell'input

##
Soluzione: le pipe

Molti comandi UNIX producono una grande quantità di informazioni: per esempio, non è strano per un comando come `ls /usr/bin` produrre più output di quello che potete vedere su una sola schermata. Per riuscire a vedere tutte le informazioni di un comando come `ls /usr/bin`, è necessario usare un altro comando Unix, chiamato `more` .6.4 `more` si ferma ad ogni videata di informazioni. Per esempio, `more < /etc/rc` mostra il file `/etc/rc`, esattamente come farebbe `cat /etc/rc`, eccetto che vi permette di leggerlo. `more` permette anche la forma `more /etc/rc`, ed è questo il modo normale di invocarlo. Comunque, questo non risolve il problema che `ls /usr/bin` mostra più informazioni di quelle che potete vedere. `more < ls /usr/bin` non funziona--la redirezione dell'input funziona solamente con i file, non con i comandi! Potreste fare questo:
80#80
UNIX dà un modo più pulito per fare la stessa cosa: si usa il comando `ls /usr/bin | more`. Il carattere ```|`'' indica una pipe (conduttura). Come una conduttura dell'acqua, una pipe UNIX controlla il flusso. Invece di acqua, stiamo controllando il flusso di informazioni! Uno strumento utile con le pipe sono i programmi chiamati filtri . Un filtro è un programma che legge lo standard input, lo elabora in qualche modo e manda i risultati sullo standard output. `more` è un filtro--legge i dati che provengono dallo standard input e li visualizza sullo standard output una videata alla volta, permettendovi di leggere il file. `more` non è un granché come filtro, dato che il suo output non può essere usato come input per un altro programma. Altri filtri sono i programmi `cat` , `sort` , `head` e `tail` . Per esempio, se volete leggere solo le prime dieci linee dell'output di `ls`, potete usare `ls /usr/bin | head`.

Next: Multitasking Up: Standard Input e Standard Previous: Redirezione dell'input