我知道在Linux中,要将屏幕输出重定向到文件,可以使用>或tee。然而,我不确定为什么部分输出仍然输出到屏幕而没有写入文件。
是否有方法将所有输出重定向到文件?
我知道在Linux中,要将屏幕输出重定向到文件,可以使用>或tee。然而,我不确定为什么部分输出仍然输出到屏幕而没有写入文件。
是否有方法将所有输出重定向到文件?
当前回答
该部分被写入stderr,请使用2>将其重定向。例如:
foo > stdout.txt 2> stderr.txt
或者如果您希望在同一文件中:
foo > allout.txt 2>&1
注意:这在(ba)sh中有效,请检查shell的语法是否正确
其他回答
这可能是标准错误。您可以重定向它:
... > out.txt 2>&1
该部分被写入stderr,请使用2>将其重定向。例如:
foo > stdout.txt 2> stderr.txt
或者如果您希望在同一文件中:
foo > allout.txt 2>&1
注意:这在(ba)sh中有效,请检查shell的语法是否正确
使用>>附加:
命令>>文件
使用此-“此处需要命令”>log_file_name 2>&1
Unix/Linux中重定向运算符的详细描述。
>运算符通常将输出重定向到文件,但也可以重定向到设备。也可以使用>>进行追加。
如果未指定数字,则假定为标准输出流,但也可以重定向错误
> file redirects stdout to file
1> file redirects stdout to file
2> file redirects stderr to file
&> file redirects stdout and stderr to file
/dev/null是一个空设备,它接受您想要的任何输入并将其丢弃。它可用于抑制任何输出。
命令:
foo >> output.txt 2>&1
附加到output.txt文件,而不替换内容。