Redirect dello standard error in Linux

Mattepuffo's logo
Redirect dello standard error in Linux

Redirect dello standard error in Linux

Su Linux, in genere, siamo abituati a fare il redirect dello standard output (stdout) in una maniera del genere:

$ ls -l > lista.txt

Volendo possiamo fare il redirect anche dello standard error (stderr) che il device di errore standard.

Prendiamo questo esempio:

$ cd /root/
bash: cd: /root/: Permesso negato

L'errore viene visualizzato in console; noi vogliamo salvarlo su file:

$ cd /root/ 2> error.txt 
$ cat error.txt 
bash: cd: /root/: Permesso negato

Ovviamente è un esempio abbastanza banale, ma vi fa capire come fare; in sostanza bisogna usare il 2 per indicare di fare il redirect di stderr; l'uno è per l'stdout.

Volendo si può fare il redirect di entrambi:

$ comando &> file.txt

Il redirect di stderr può essere molto utile nel caso di operazioni lunghe, in cui vogliamo vederci l'output dopo con calma.

Per fare un altro esempio un pò più corposo:

$ find / -name "*.php" > lista.txt 2> errore.txt

Qui cerchiamo tutti i file con estensione PHP su tutto il filesystem.

Nel primo file ci sarà la lista con i file trovati; nel second file ci sarà la lista degli errori, che corrisponderà a tutte le directory a cui l'utente normale non può accedere.

Fate qualche prova per capire che intendo.

Enjoy!


Condividi

Commentami!