1: stdout
2: stderr
Note that the order of redirections is significant. For example, the command
ls > dirlist 2>&1directs both standard output and standard error to the file dirlist, while the command
ls 2>&1 > dirlistdirects only the standard output to file dirlist, because the standard error was duplicated from the standard output before the standard output was redirected to dirlist.
Redirecting Standard Output and Standard Error:
This construct allows both the standard output (file descriptor 1) and the standard error output (file descriptor 2) to be redirected to the file whose name is the expansion of word.
There are two formats for redirecting standard output and standard error:
&>wordand
>&wordOf the two forms, the first is preferred. This is semantically equivalent to
>word 2>&1To redirect both stdout output and stderr error to a file:
# find . &> /tmp/test.txt
Redirects STDOUT to log and than replaces STDERR with the redirected STDOUT:
# some_cmd > log 2>&1
Replaces STDERR with STDOUT and then redirects the original STDOUT to log:
# some_cmd 2>&1 > log
Lookup the manual and find keyword redirection for detail:
# man bash
Reference:
http://stackoverflow.com/questions/4699790/cmd-21-log-vs-cmd-log-21
http://superuser.com/questions/71428/what-does-21-do-in-command-line
http://stackoverflow.com/questions/818255/in-the-shell-what-does-21-mean
No comments:
Post a Comment