搞清楚三个含义:
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 表示将标准输出的重定向到错误输出