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.