Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

Reindirizzamento dell'output standard e dell'errore standard su un file

Ci sono casi in cui potremmo voler catturare tutto l'output di un comando in un singolo file. Per fare ciò, dobbiamo reindirizzare contemporaneamente sia l'output standard che l'errore standard. Ci sono due modi per farlo. Innanzitutto, il modo tradizionale, che funziona con le vecchie versioni della shell:



[io@linuxbox~]$ ls -l /bin/usr > ls-output.txt 2>&1

[io@linuxbox~]$ ls -l /bin/usr > ls-output.txt 2>&1


Usando questo metodo, eseguiamo due reindirizzamenti. Per prima cosa reindirizziamo l'output standard al file ls-output.txt e quindi reindirizziamo il descrittore di file 2 (errore standard) al descrittore di file uno (output standard) utilizzando la notazione 2> e 1.


Immagine

Si noti che l'ordine dei reindirizzamenti è significativo. Il reindirizzamento dell'errore standard deve sempre verificarsi dopo reindirizzare l'output standard o non funziona. Nell'esempio sopra,


>ls-output.txt 2>&1


reindirizza l'errore standard al file ls-output.txt, ma se l'ordine viene modificato in


2>&1 >ls-output.txt


l'errore standard viene indirizzato allo schermo.


Immagine

Versioni recenti di bash fornire un secondo metodo più snello per eseguire questa operazione

Errore standard di reindirizzamento


reindirizzamento combinato:



[io@linuxbox~]$ ls -l /bin/usr &> ls-output.txt

[io@linuxbox~]$ ls -l /bin/usr &> ls-output.txt


In questo esempio, usiamo la notazione singola &> per reindirizzare sia l'output standard che l'errore standard nel file ls-output.txt. Puoi anche aggiungere l'output standard e i flussi di errore standard a un singolo file in questo modo:



[io@linuxbox~]$ ls -l /bin/usr &>> ls-output.txt

[io@linuxbox~]$ ls -l /bin/usr &>> ls-output.txt


Il miglior sistema operativo cloud computing su OnWorks: