猿问

请问如何将所有输出重定向到文件

将所有输出重定向到文件

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

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


慕工程0101907
浏览 537回答 3
3回答

阿晨1998

那部分是写到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

湖上湖

用这个-"require command here" > log_file_name 2>&1Unix/Linux中重定向操作符的详细描述。>操作符通常将输出重定向到文件,但它可以重定向到设备。您还可以使用>来追加。如果不指定数字,则假定标准输出流,但也可以重定向错误。> file redirects stdout to file1> file redirects stdout to file2> file redirects stderr to file&> file redirects stdout and stderr to file/dev/null是一个空设备,它接收任意输入并丢弃它。它可以用来抑制任何输出。
随时随地看视频慕课网APP
我要回答