cmd>file 2>&1与cmd 2>&1 >file

时间:2020-12-21 06:30:24
平时经常混淆这两个写法,一段时间不用就忘记了,写个简单的blog记一下:
cmd>file 2>&1:
1)cmd>file: stdout-->file, stdout重定向到 file, 将标准输出信息写入到file文件;
2)2>&1:   1 表示stdout,2表示stderr,stderr重定向到stdout,由于之前已经将stdout已经重定向到file,所以stderr信息也会写入到file;
该命令把stdout,stderr都写入到file。

cmd 2>&1 >file:
1)2>&1:  stderr -->stdout, stderr重定向到 stdout, 将错误信息写入到stdout中
2)>file :  这里>file相当于 cmd>file,也就是stdout>file,将stdout重定向到file; 
该命令只是把stdout重定向到file,并没有把stderr信息写入到file。