始终将错误重定向到/ dev / null


22

我知道我可以将错误消息从命令重定向到/dev/null使用以下语法:

command arg1 arg2 2>/dev/null

但是默认情况下是否有办法做到这一点,以便错误消息始终转到/dev/null,除非我另外指定?


1
简而言之:是-将/ dev / stderr重定向到/ dev / null。但是,如果您无法自行解决问题,则不应该尝试,因为您可能会致命地破坏某些东西而不是成功。
贝努伯德

@Benubird stderr!= / dev / stderr。重定向该文件不会执行任何操作。/ dev /中的文件只是为了方便起见。
克里斯·

@ChrisDown你是对的,/ dev / stderr只是一个链接。仍然有许多进程代替fd / 2来写入该文件,您也可以重定向该文件。从那里开始,情况变得更加复杂-这就是为什么我留下评论而不是回答的原因:)。
贝努伯德

Answers:


29

许多程序将输出发送到stderr,但实际上并不表示错误。例如,在某些程序中,它用于显示可能会影响程序输出的信息(该信息被设计为通过管道传递到另一个程序中)。但是,您可以这样做:

exec 2>/dev/null

我不建议在脚本之外执行此操作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.