Linux Command for Sending Output to Standard Output and File

Send Output to stdout and File - LFCS Exam Question Answer

Question

Which of the following commands will send output from the program myapp to both standard output (stdout) and the file file1.log?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D. E.

D

The correct answer is D. myapp | tee file1.log.

Explanation:

myapp is a program or command whose output we want to capture in both standard output (stdout) and the file file1.log.

Option A: cat < myapp | cat > file1.log This command will redirect the input of cat to come from the output of myapp, and then redirect the output of cat to the file file1.log. This will not achieve the desired result because cat will simply display the output of myapp on the terminal, and the file file1.log will only contain the output of cat, not myapp.

Option B: myapp 0>&1 | cat > file1.log This command redirects the standard output of myapp to the same place as standard error, which is then piped to cat, which in turn sends its output to file1.log. This will not work as intended, because the standard output of myapp will be redirected to the standard input of cat, not the terminal.

Option C: myapp | cat > file1.log This command will redirect the output of myapp to the input of cat, which will then send its output to file1.log. This option is incorrect, as it will not display the output of myapp on the terminal.

Option D: myapp | tee file1.log This command uses the tee command to display the output of myapp on the terminal while also sending it to file1.log. This is the correct option, as it achieves the desired result.

Option E: tee myapp file1.log This command will try to execute a program called tee with two arguments, myapp and file1.log. This is not correct, as tee is a command, not a program that can be executed with arguments.

Therefore, the correct answer is D. myapp | tee file1.log.