linux shell重定向(2>&1)

描述符介绍:

0 是一个文件描述符,表示标准输入(stdin)

1 是一个文件描述符,表示标准输出(stdout)
2 是一个文件描述符,表示标准错误(stderr)
在标准情况下, 这些FD分别跟如下设备关联: 
stdin(0): keyboard 键盘输入,并返回在前端 
stdout(1): monitor 正确返回值 输出到前端 
stderr(2): monitor 错误返回值 输出到前端

重定向:
& 是一个描述符,如果1或2前不加&,会被当成一个普通文件。
1>&2 意思是把标准输出重定向到标准错误.
2>&1 意思是把标准错误输出重定向到标准输出。
&>filename 意思是把标准输出和标准错误输出都重定向到文件filename中


例子:

# ll
total 8
drwxr-xr-x 2 root root 4096 Mar 22  2016 version-2
-rw-r--r-- 1 root root    5 Mar 22  2016 zookeeper_server.pid
# ll > out 
# cat out
total 8
drwxr-xr-x 2 root root 4096 Mar 22  2016 version-2
-rw-r--r-- 1 root root    5 Mar 22  2016 zookeeper_server.pid
# ll xxx (xxx不存在)
ls: cannot access xxx: No such file or directory
# ll xxx > out
# cat out
空
#ll xxx >out 2>&1
#cat out
ls: cannot access xxx: No such file or directory


你可能感兴趣的:(linux)