Linux: output comandi shell su file


Indirizzare l’output dei comandi shell in un file.

Cosa potrebbe serivre questa funzionalita’? Potrebbe essere necessario monitorare uno script controllandone l’esecuzione o gli errori, oppure potrebbe essere utile per indirizzare l’output del comando in un file su cui un’altro script recuperera’ le informazioni per eseguire altre funzioni.

Vediamo ora i diversi metodi per indirizzare l’output in un file

user@linux:$ comando > nomefile.txt

Questa modalita crea all’esecuzione di ‘comando’ un file di nome ‘nomefile.txt’ con all’interno tutto quello che sarebbe stato stampato a video nella shell di esecuzione, se il file non esiste lo crea, altrimenti se gia’ esistente lo sovrascrive. Dunque il simbolo ‘>’ sta a indicare la modalita di scrittura nel file. Vediamo quali sono le opsioni che possiamo usare :

simbolodescrizione
>Scrive in nuovo file, se esiste lo sovrascrive
>>Scrive accodando alla fine del file se esiste, se non presente crea il file
2>Scrive solo gli errori standard se file esiste lo sovrascrive. L’output del comando viene mandato a video
2>>Come sopra ma accoda gli errori alla fine del file
&>Scrive sia l’output che gli errori standard sul file e non visualizza nulla sul video
&>>come sopra ma accoda alla fine del file

Un secondo metodo per reindirizzare e’ l’uso di tee. Se con il metodo precedente l’output del comando veniva reindirizzato sul file senza mostrare nulla a monitor, con tee e’ possibile indirizzare l’output nel file ed allo stesso tempo visualizzarlo sul monitor.

user@linux:$ comando | tee nomefile.txt

Nella tabella sotto sono riportati le varie versioni del comando e il loro risultato.

metododescrizione
| teemanda a schermo il risultato del comando in piu scrive sul file, se il file esiste lo sovrascrive
| tee -amanda a schermo il risultato del comando in piu scrive sul file, se il file esiste aggiunge il testo alla fine
|& teeManda a schermo sia l’output che gli errori standard in piu scrive tutto sul file , se esiste lo sovrascrive
|& tee -aManda a schermo sia l’output che gli errori standard in piu scrive tutto sul file se esiste aggiunge il testo alla fine

Lascia un commento

Il tuo indirizzo email non sarĂ  pubblicato. I campi obbligatori sono contrassegnati *