Ridirezionare l'input e l'output

Ora che abbiamo chiarito cosa si intende per standard input e standard output, è il momento di approfondire alcuni concetti.

Ridirezionare significa cambiare ciò che la shell considera come standard input o standard output.

Abbiamo utilizzato cat per fornire un esempio di standard input e standard output. Ora, utilizziamo cat per mostrarvi come è possibile ridirezionare lo standard output.

Per ridirezionare lo standard output, useremo il simbolo >. Mettendo > dopo il comando cat (o dopo ogni programma che scriva sullo standard output) l'output viene ridirezionato nel file indicato dopo questo simbolo.

Proviamo. In una finestra di Xterm digitiamo:

[newuser@localhost newuser]$ cat > sneakers.txt
buy some sneakers
then go to the coffee shop
then buy some coffee
	  

Figura 15-12. Redirezione dello standard output in un file

Ora premete il tasto Enter per andare in una linea vuota, e utilizzate il tasto Ctrl-D per uscire da cat.

Notate la differenza (vedasi Figura 15-12)? Non è stato visualizzato niente perchè lo standard output di cat è stato ridirezionato nel file chiamato sneakers.txt .

Troverete il file nella vostra directory di login (vi suggeriamo di utilizzare ls se volete visualizzarlo).

Potete utilizzare cat per leggere il file, digitando:

cat sneakers.txt
	  

al prompt.

CautelaNon sovrascrivete i file
 

State attenti quando ridirezionate lo standard output in file, perchè potreste sovrascrivere un file esistente! Assicuratevi che il nome del file che state creando non sia il nome di un file già esistente, se non volete sovrascriverlo.

Ridirezioniamo l'output verso un altro file e chiamiamolo home.txt.

[newuser@localhost newuser]$ cat > home.txt
bring the coffee home
take off shoes
put on sneakers
make some coffee
relax!
	  

Ora, in una linea vuota, utilizzate i tasti Ctrl-D per uscire da cat.

Possiamo visualizzare ancora il file digitando:

cat home.txt
	  

al prompt.

Utilizziamo cat per unire home.txt con sneakers.txt e ridirezioniamo l'output di entrambi i file in un nuovo file che chiameremo saturday (troverete un esempio in Figura 15-13).

[newuser@localhost newuser]$ cat sneakers.txt home.txt > saturday
	  

Fatto!

Figura 15-13. Unire file e ridirezionare l'output

Per vedere il risultato, digitate:

[newuser@localhost newuser]$ cat saturday
	  

dovreste vedere qualcosa di simile a quanto segue:

[newuser @localhost newuser]$ cat saturday
buy some sneakers
then go to the coffee shop
then buy some coffee
bring the coffee home
take off shoes
put on sneakers
make some coffee
relax!
[newuser @localhost newuser]$
	  

Noterete che cat ha aggiunto home.txt dove finisce sneakers.txt.

SuggerimentoUnire file con cat
 

Creare ed unire file con cat può essere una valida alternativa ad un editor di testo come Pico.

SuggerimentoRiassunto
 

Usando il simbolo della ridirezione dell'output (>) potete spedire output di un file ad un terminale. L'utility cat può essere utilizzata per ridirezionare l'output o per unirlo ad un altro file.