- 背景
在Flume实践学习中,看到了如下操作:
flume-ng agent --conf conf --conf-file flume_inc_hdfs.conf --name a1 - Dflume.root.logger=INFO,console >> flume.log 2>&1 &
一时看不懂最后的2>&1 &是什么意思,经过查找资料终于搞清楚,特此记录。
首先,以上命令大概分解如下:
- flume-ng … >>flume.log:表示将flume日志标准输入到文件flume.log中
- 2>&1:将标准错误输出重定向到标准输出
- &:该命令以后台的job的形式运行
下文将着重解释2>&1
- Linux中0,1,2的含义:
- 0:标准输入(stdin) 符号表示<或<<
- 1:标准输出(stdout)符号表示>,>>或1>,1>>
- 2:标准错误输出(stderr)符号表示2>或2>>
- 关于2>&1的解释
- 含义:将标准错误输出重定向到标准输出
- 符号>&是一个整体,不可分开,分开后含义就变了。 2>1的作用是把标准错误的输出重定向到1,但这个1不是标准输出,而是一个文件,文件名就是1。
- 写成2&>1也是不可以的
参考资料
http://www.cnblogs.com/chengmo/archive/2010/10/20/1855805.html