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!
linux bash stderr stdout
Commentami!