linux - dev - redirect stderr and stdout to different files
How can I redirect and append both stdout and stderr to a file with Bash? (4)
In Bash 4 (as well as ZSH 4.3.11):
just out of box
To redirect stdout to a truncated file in Bash, I know to use:
cmd > file.txt
To redirect stdout in Bash, appending to a file, I know to use:
cmd >> file.txt
To redirect both stdout and stderr to a truncated file, I know to use:
cmd &> file.txt
How do I redirect both stdout and stderr appending to a file?
cmd &>> file.txt did not work for me.
In Bash you can also explicitly specify your redirects to different files:
cmd >log.out 2>log_error.out
Appending would be:
cmd >>log.out 2>>log_error.out
This should work fine:
your_command 2>&1 | tee -a file.txt
It will store all logs in file.txt as well as dump them on terminal.
You_command 1>output.log 2>&1
Your usage of &>x.file does work in bash4. sorry for that : (
Here comes some additional tips.
0, 1, 2...9 are file descriptors in bash.
0 stands for
stdin, 1 stands for
stdout, 2 stands for
stderror. 3~9 is spare for any other temporary usage.
Any file descriptor can be redirected to other file descriptor or file by using operator
Usage: <file_descriptor> > <filename | &file_descriptor>
Please reference to http://www.tldp.org/LDP/abs/html/io-redirection.html