linux命令后面的 1>> /dev/null 2>&一 是什么意思
linux命令后面的 1>> /dev/null 2>&1 是什么意思?
1>> /dev/null 2>&1
linux命令后面的 1>> /dev/null 2>&1 是什么意思?
------解决思路----------------------
1>> /dev/null 2>&1
对于/dev/null设备一般不存在附加的说法,虽然这么写没错。一般写成:
1>/dev/null 2>&1
1>/dev/null 含义是把标准输出重定向到/dev/null,其实就是屏蔽标准输出。
2>&1 是把标准错误重定向到标准输出,也就是fprintf(stderr, "error msg");的信息会被打印到stdout上。
结合起来就是屏蔽所有输出信息。
至于为什么采用>,>>以及>&这些符号,我也不清楚,前两者还算直观,>&这个我也是理解不能。
可以查看sh实现源码,通过代码了解这些符号的实现,希望注释中能有一些蛛丝马迹描述为什么采用这个符号。
------解决思路----------------------
> 是覆盖 》是追加
------解决思路----------------------
x>&y,基本上相当于dup2(x,y),让文件描述符#y跟文件描述符#x指向同一个文件
1>> /dev/null 2>&1
linux命令后面的 1>> /dev/null 2>&1 是什么意思?
------解决思路----------------------
1>> /dev/null 2>&1
对于/dev/null设备一般不存在附加的说法,虽然这么写没错。一般写成:
1>/dev/null 2>&1
1>/dev/null 含义是把标准输出重定向到/dev/null,其实就是屏蔽标准输出。
2>&1 是把标准错误重定向到标准输出,也就是fprintf(stderr, "error msg");的信息会被打印到stdout上。
结合起来就是屏蔽所有输出信息。
至于为什么采用>,>>以及>&这些符号,我也不清楚,前两者还算直观,>&这个我也是理解不能。
可以查看sh实现源码,通过代码了解这些符号的实现,希望注释中能有一些蛛丝马迹描述为什么采用这个符号。
------解决思路----------------------
> 是覆盖 》是追加
------解决思路----------------------
x>&y,基本上相当于dup2(x,y),让文件描述符#y跟文件描述符#x指向同一个文件