bash - 将标准输出重定向到文件并将标准错误重定向到同一个文件
问题描述
我正在运行一个命令,它将(很可能)将文本输出到标准错误和标准输出。我想将 stderr 和 stdout 都保存到同一个文件中,但我只想将 stderr 打印到终端。
我怎样才能让它工作?我已经尝试过mycommand 1>&2 | tee file.txt >/dev/null
,但这并没有在终端上打印任何内容。
解决方案
如果您不需要完美的订购
使用 的两个单独副本tee
,都以附加模式写入同一个文件,但只有其中一个随后将内容转发到/dev/null
,将使您到达您需要的位置:
mycommand \
2> >(tee -a file.txt >&2) \
> >(tee -a file.txt >/dev/null)
如果您确实需要完美的订购
推荐阅读
- javascript - 如何循环并显示包含 JavaScript 对象的 API 数据
- typescript - VSCode 保存将行尾更改为 CRLF
- python - 当我在 PyQt5 窗口中嵌入 Matplotlib 图形时,为什么有两个重复的轴标签?
- python - 如何使用 Flask 将 json 字符串传递给 url
- flutter - 没有为“对象”类型定义方法“forEach”
- javascript - JavaScript:无法更改选定的游戏模式
- python - 异步函数作为函数的可调用参数 - Discord.py
- php - 如何在数组中创建时间范围步长这样的结果 - PHP
- wordpress - 无法在 wordpress 中停用和自动调用类
- reactjs - 反应路由组件未在页面上呈现