Answers:
简而言之,它将重定向stderr(fd 2)到黑洞(丢弃命令的输出)。
一些更常见的重定向用例:
command > /dev/null 2>&1 &
command在后台运行,丢弃stdout并stderr
command >> /path/to/log 2>&1 &
运行command并将stdout和stderr附加到日志文件。
在Bash 4+中,可以使用较短(但可读性较差)的形式
command &>> /path/to/log
> /dev/null 2>&1代替使用&> /dev/null?
&>是Bash 4中的新功能,前者只是传统方式,我已经习惯了(容易记住)。
fn>target,其中fn是文件号(通常为0-2,某些程序定义了更多数字),target通常是文件名,但这里是另一个文件号-前缀&为“我想要文件号而不是文件名”的语法。
grep -i'abc'内容将生成显示在控制台上的输出,包括所有错误。
指定2>/dev/null将滤除错误,以使它们不会输出到您的控制台。
更详细地:2表示错误描述符,将其写入错误。默认情况下,它们被打印在控制台上。
\> 在这种情况下,将输出重定向到指定位置 /dev/null
/dev/null 是将要忽略的输出发送到的标准Linux设备。
> /dev/null 2>&1和之间有区别&> /dev/null