Punto informatico Network
Canali
20100315081905_91510602_20100315081846_1745368878_pipe_spotlight.png

Bash: pipe e redirezioni

07/05/2010
- A cura di
Linux & Open Source - Pipe e redirezioni sono tra gli strumenti fondamentali di utilizzo della shell Bash, e costituiscono parte del bagaglio di conoscenze di base che un utente della console testuale di Linux deve avere.

Tag

Passa qui con il mouse e visualizza le istruzioni per utilizzare i tag!

pipe (1) .

Valutazione

  •  
Voto complessivo 3.5 calcolato su 9 voti

Analisi di un comando 1

In Linux si usa molto spesso un programma di compressione, gzip, che accetta come stdin un flusso di dati, e il suo utilizzo (dal punto di vista dei descrittori) è simile a tar:

cat <file> | gzip -9 >file.gz

In questa semplice riga di comando è racchiuso l'intero significato di questo articolo, c'è un pipe e una redirezione. Analizziamoli uno alla volta.

cat <file> | gzip -9

Ricordando ciò che abbiamo detto sui file descriptors, in questo caso l'output di cat (ovvero il contenuto di <file>) viene esposto in stdout e indirizzato nello stdin di gzip attraverso il simbolo di pipe (|), che dà il nome alla funzione, per la compressione a livello massimo con l'opzione -9.

>file.gz

È una redirezione: per default gzip genera l'archivio compresso nel suo descrittore 1, ovvero l'output standard (non a caso è chiamato stdout). Quindi usiamo una redirezione, con il carattere >, per riversare il flusso di dati in output in un file su disco. [7] [11]

Analisi di un comando 2

Questo è più complesso, e lo analizzeremo passo per passo prima di concludere a che cosa serve.

Tralasciando il costrutto for..do..done, qui abbiamo tutto: pipe e redirezioni.

Per ogni modulo module (ovvero, file che hanno estensione .ko) nella directory dei moduli del kernel corrente, ne estraiamo il nome con

echo $(basename $module)

Che viene poi mandato come standard input di sed, dove ne filtriamo l'estensione con

sed 's/\.ko//g'

E l'output di sed, ovvero il nome del modulo con l'estensione rimossa, viene accodato nel file modules.list della directory corrente. Potete poi vedere i contenuti di modules.list con un semplice

cat modules.list [8] [9] [10].

Pagina successiva
Appendice: "here documents"
Pagina precedente
Esempi con i descrittori

 

Segnala ad un amico

Tuo nome Tuo indirizzo e-mail (opzionale)
Invia a:
    Aggiungi indirizzo email
    Testo

    © Copyright 2020 BlazeMedia srl - P. IVA 14742231005

    • Gen. pagina: 0.23 sec.
    •  | Utenti conn.: 38
    •  | Revisione 2.0.1
    •  | Numero query: 44
    •  | Tempo totale query: 0.05