/dev/null 空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF。
等价于一个只写文件,并且所有写入它的内容都会永远丢失,而尝试从它那儿读取内容则什么也读不到。然而, /dev/null对命令行和脚本都非常的有用。
0 是一个文件描述符,表示标准输入(stdin)
1 是一个文件描述符,表示标准输出(stdout)
2 是一个文件描述符,表示标准错误(stderr)
>是重定向符,就是把前面输出的内容重定向到后面指定的位置
>前是可以加数字来说明把什么内容重定向到文件中,默认是把标准输出重定向到文件中。
一般来说, "1>" 通常可以省略成 ">"
&2表示2输出通道
1>&2 正确返回值传递给2输出通道
如果此处错写成 1>2, 就表示把1输出重定向到文件2中
& 是一个描述符,如果1或2前不加&,会被当成一个普通文件
1>&2 意思是把标准输出重定向到标准错误
2>&1 意思是把标准错误输出重定向到标准输出
&>filename 意思是把标准输出和标准错误输出都重定向到文件filename中
2>/dev/null
意思就是把错误输出到“黑洞”
>/dev/null 2>&1
默认情况是1,也就是等同于1>/dev/null 2>&1。
意思就是把标准输出重定向到“黑洞”,
还把错误输出2重定向到标准输出1,
也就是标准输出和错误输出都进了“黑洞”
2>&1 >/dev/null
错误输出2重定向到标准输出1,也就是屏幕,标准输出进了“黑洞”,也就是标准输出进了黑洞,错误输出打印到屏幕