搞清楚三个含义:

0:标准输入

1:标准输出

2:错误输出


举例:

$ls a.txt b.txt              当前目录下只有a.txt存在

ls: b.txt: No such file or directory
a.txt

$ls a.txt b.txt 1>1.out 2>2.err   表示将标准输出到1.out,将错误输出到2.err

而1>1.out可以简写为>1.out

所以:

$ls a.txt b.txt >file.log 2>&1 表示将错误的重定向到标准输出,而这里标准输出到file.log

$ls a.txt b.txt 2>err.log 1>&2 表示将标准输出的重定向到错误输出,这里错误输出到err.log

 

总结就是:

2>&1 表示将错误的重定向到标准输出


1>&2 表示将标准输出的重定向到错误输出