猿问

将所有输出重定向到文件

将所有输出重定向到文件

我知道在linux中,要将输出从屏幕重定向到文件,可以使用>tee..但是,我不知道为什么部分输出仍然输出到屏幕,而不是写入文件。

是否有将所有输出重定向到文件的方法?


慕少森
浏览 1383回答 3
3回答

千万里不及你

那部分是写到stderr的,用2>重定向。例如:foo > stdout.txt 2> stderr.txt或者如果您想要在同一个文件中:foo > allout.txt 2>&1注意:这在(Ba)sh中有效,检查shell是否有正确的语法。

函数式编程

所有POSIX操作系统有3条溪流:stdin、stdout和stderr。stdin是输入,可以接受stdout或stderr。stdout是主要输出,它被重定向为>, >>,或|..stderr是错误输出,它是分开处理的,这样就不会将任何异常传递给命令或写入可能会中断的文件;通常,这会发送给某种类型的日志,或者直接转储,甚至在重定向stdout时也是如此。若要将两者重定向到同一地点,请使用:command &> /some/file请使用:*command* > file 2>&1如果要关闭错误,请执行以下操作:*command* 2> /dev/null
随时随地看视频慕课网APP
我要回答