如何仅重定向 stderr?

如何仅重定向 stderr?

我在做这件事时遇到了一些麻烦。我需要运行已编译的 .java 文件并仅将 stderr 重定向到名为 error 的文件。因此.java 文件被命名为javaProgram.java。

这是我尝试过的:

java javaProgram 2> error

然而当我

cat error

看起来那里有东西,即使我知道特定的 .java 文件没有错误。难道我做错了什么?我希望这个错误文件只显示错误,而不是其他任何内容。

答案1

你的第一次尝试是正确的;2>filename这就是您重定向 stderr 的方式。可能的情况是你的程序正在向stderr写入一些非错误,或者java程序正在运行其他输出到stderr的程序。

答案2

简单的答案是这是不可能的。标准错误用于写入诊断输出,由应用程序定义什么是诊断/错误输出。这是根据POSIX标准

相关内容