仅将标准输出重定向到 /dev/null

7

我还没有掌握奇怪的shell标准输入输出重定向。

我想运行npm install命令,但是重定向标准输出,这样我就不必看到所有的输出信息。(我仍然希望在终端中捕获标准错误输出,只是不想看到标准输出)。

npm install -D suman 1> /dev/null

这似乎不起作用。

正确的语法是什么(可能还有为什么),只将stdout重定向到/dev/null


“它可能是由npm命令打印到标准输出(stdout)的”,你的意思是标准错误(stderr),而不是标准输出(stdout)...” - Alexander Mills
非常正确;我已经发布了一个修正后的评论。 - Keith Thompson
谢谢,我明白了。是的,我会尝试使用自己的脚本进行实验,而不是使用npm。 - Alexander Mills
不,我明白了,@MTilsted的答案是正确的,NPM似乎通过将非警告和非错误写入stderr来破坏我的世界,现在让我崩溃了。 - Alexander Mills
1
正如我之前所说,1>>的意思完全相同。 - Keith Thompson
显示剩余7条评论
1个回答

11

npm install -D suman > /dev/null应该可以解决问题。(这是标准的重定向,只会重定向标准输出)


这与问题中的命令完全相同;> /dev/null 等同于 1> /dev/null - Keith Thompson
@AlexanderMills:语法没问题,但你已经说过它不起作用了。 - Keith Thompson
@AlexanderMills:请阅读并回复我在问题上发布的评论。 - Keith Thompson
我认为这是因为NPM将大部分垃圾写入stderr,这是一个重大的设计缺陷。因此,将stdout重定向到/dev/dull并不能真正清除任何东西。 - Alexander Mills

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接