首页 > 解决方案 > 将标准输出重定向到文件并将标准错误重定向到同一个文件

问题描述

我正在运行一个命令,它将(很可能)将文本输出到标准错误和标准输出。我想将 stderr 和 stdout 都保存到同一个文件中,但我只想将 stderr 打印到终端。

我怎样才能让它工作?我已经尝试过mycommand 1>&2 | tee file.txt >/dev/null,但这并没有在终端上打印任何内容。

标签: bashio-redirectiontee

解决方案


如果您不需要完美的订购

使用 的两个单独副本tee,都以附加模式写入同一个文件,但只有其中一个随后将内容转发到/dev/null,将使您到达您需要的位置:

mycommand \
  2> >(tee -a file.txt >&2) \
   > >(tee -a file.txt >/dev/null)

如果您确实需要完美的订购

请参阅单独重定向和重新组合 stderr/stdout 而不会丢失排序


推荐阅读