Monday, 29 January 2018

linux - How to redirect output to a file and stdout



In bash, calling foo would display any output from that command on the stdout.



Calling foo > output would redirect any output from that command to the file specified (in this case 'output').



Is there a way to redirect output to a file and have it display on stdout?



Answer



The command you want is named tee:



foo | tee output.file


For example, if you only care about stdout:



ls -a | tee output.file



If you want to include stderr, do:



program [arguments...] 2>&1 | tee outfile


2>&1 redirects channel 2 (stderr/standard error) into channel 1 (stdout/standard output), such that both is written as stdout. It is also directed to the given output file as of the tee command.



Furthermore, if you want to append to the log file, use tee -a as:




program [arguments...] 2>&1 | tee -a outfile

No comments:

Post a Comment

casting - Why wasn't Tobey Maguire in The Amazing Spider-Man? - Movies & TV

In the Spider-Man franchise, Tobey Maguire is an outstanding performer as a Spider-Man and also reprised his role in the sequels Spider-Man...