平时经常混淆这两个写法,一段时间不用就忘记了,写个简单的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。
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。
本文详细解释了Linux命令中文件重定向符号`>`和`>&`的使用方式,包括如何将标准输出和错误输出重定向到同一文件中。
4979

被折叠的 条评论
为什么被折叠?



