如何在同一命令中将标准输出与标准错误重定向至不同文件
分离Linux命令的标准输出与错误/警告输出
在Linux中,我们可以通过文件描述符分别重定向标准输出(stdout,对应文件描述符1)和标准错误(stderr,对应文件描述符2)到不同文件——大多数程序会把错误和警告信息统一输出到stderr。
基础用法(覆盖写入文件)
直接在目标命令后添加重定向符号即可:
your_command > normal_output.log 2> errors_warnings.log
>等价于1>,表示将命令的**正常输出(stdout)**写入normal_output.log,若文件已存在会覆盖原有内容。2>表示将命令的**错误和警告信息(stderr)**写入errors_warnings.log,同样会覆盖原有内容。
追加写入文件
如果需要保留文件原有内容,仅将新输出追加到末尾,使用>>和2>>:
your_command >> normal_output.log 2>> errors_warnings.log
特殊情况说明
少数程序可能会将警告信息输出到stdout而非stderr,这种情况下需要查看该程序的官方文档,确认是否有专门参数指定警告信息的输出位置,再配合重定向实现分离。
内容的提问来源于stack exchange,提问作者pravin kumar
相关产品推荐
相关产品推荐

