linux - [Solved-5 Solutions] How to redirect output to a file and stdout - ubuntu - red hat - debian - linux server - linux pc




Linux - Problem :

How to redirect output to a file and stdout ?

Linux - Solution 1:

The command you want is named tee:

wikitechy | tee output.file
click below button to copy the code. By - Linux tutorial - team

For example:

ls -a | tee output.file
click below button to copy the code. By - Linux tutorial - team

If you want to include stderr:

program [arguments...] 2>&1 | tee outfile
click below button to copy the code. By - Linux tutorial - team

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.

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

program [arguments...] 2>&1 | tee -a outfile
click below button to copy the code. By - Linux tutorial - team

Linux - Solution 2:

$ program [arguments...] 2>&1 | tee outfile
click below button to copy the code. By - Linux tutorial - team

2>&1 dumps the stderr and stdout streams. tee outfile takes the stream it gets and writes it to the screen and to the file "outfile".

The program unbuffer, part of the expect package, will solve the buffering problem. This will cause stdout and stderr to write to the screen and file immediately and keep them in sync when being combined and redirected to tee. E.g.:

$ unbuffer program [arguments...] 2>&1 | tee outfile
click below button to copy the code. By - Linux tutorial - team

Linux - Solution 3:

<command> |& tee  <outputFile>
click below button to copy the code. By - Linux tutorial - team

Example:

ls |& tee files.txt
click below button to copy the code. By - Linux tutorial - team
  • "If ‘|&’ is used, command1’s standard error, in addition to its standard output, is connected to command2’s standard input through the pipe; it is shorthand for 2>&1 |.
  • This implicit redirection of the standard error to the standard output is performed after any redirections specified by the command."

Linux - Solution 4:

whatever | tee logfile.txt
click below button to copy the code. By - Linux tutorial - team

Linux - Solution 5:

ls -lR / | tee -a output.file
click below button to copy the code. By - Linux tutorial - team

Related Searches to - linux - linux tutorial - How to redirect output to a file and stdout