Answers:
这无关紧要grep
-因为管道|
重定向标准输出流,stdout
而Permission denied
消息在标准错误流中stderr
。你可以达到你想要使用结合流的结果2>&1
(重定向其文件描述符是流2
给其文件描述符是流1
),以便stderr
以及stdout
被输送到grep命令的输入
find / -name libGL.so.1 2>&1 | grep -v 'denied'
但通常stderr
将其重定向到/dev/null
find / -name libGL.so.1 2>/dev/null
如果查看Bash手册页,您可能会注意到以下内容:
如果
|&
使用,则命令的标准错误通过管道连接到command2的标准输入。它是的简写2>&1 |
。
因此,如果要加入STDERR和STDOUT,也可以使用此构造:
find / -name libGL.so.1 |& grep -v 'denied'
/foo/bar/denied/libGL.so.1
,结合stdout
和stderr
再过滤会隐藏结果