Example: nohup/mnt/nand3/h2000g >/dev/null 2>&1 &
for & 1 More accurate should be the file descriptor 1, and 1 is generally representative of Stdout_fileno, in fact, this operation is a dup2 (2) call. He standard output to All_result, and then copy the standard output to the file descriptor 2 (STDERR _fileno), the consequence is that file descriptors 1 and 2 point to the same file table entry, or the wrong output is merged. where 0 means keyboard input 1 means that the screen output 2 indicates an error output. REDIRECT standard error to standard output, and then throw it under/dev/null. In layman's words, all standard output and standard errors are thrown into the trash.
command >out.file 2>&1 &
command >out.file redirects the command output to the Out.file file, which means that the output is not printed to the screen, but is output to the Out.file file. 2>&1 is redirecting standard errors to standard output, where the standard output has been redirected to the Out.file file, and the standard error is output to the Out.file file. The last & is to have the command execute in the background.
Imagine what 2>1 stands for, the combination of 2 and > represents error redirection, while 1 represents the error redirection to a file 1, not the standard output;
replacing 2>&1,& with 1 represents the standard output, which becomes an error redirect to the standard output.
with LS 2>1 test, will not report No 2 file errors, but will output an empty file 1;
ls xxx 2>1 test, no xxx This file error output to 1;
ls xxx 2>&1 test, will not generate 1 of this file, but the error ran to the standard output;
ls xxx >out.txt 2>&1, actually can be replaced with ls xxx 1>out.txt 2>&1; redirect symbol > default is 1, error and output are uploaded to OUT.txt.
[[email protected]:~]$ ls 555 >22.txt 2>&1[[email protected]:~]$ cat 22.txtls: Unreachable 555: No file or directory [email Protec ted]:~]$ ls 555 >22.txtls: Inaccessible 555: No file or directory [email protected]:~]$ cat 22.txt[[email protected]:~]
why 2>&1 to write in the back?
command > File 2>&1
The first is command > file to redirect the standard output to file, 2>&1 is the standard error copy of the standard output behavior, which is also redirected to file, the end result is that the standard output and errors are redirected to file.
command 2>&1 >file
The 2>&1 standard error copies the behavior of the standard output, but at this point the standard output is still in the terminal. The output is redirected to file after >file, but the standard error remains at the terminal.
This article is from the "10707334" blog, please be sure to keep this source http://10717334.blog.51cto.com/10707334/1719262
Meaning of "2 > &1" in Shell