You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

终端中如何将strace等命令的全部控制台输出写入到文件

strace输出保存到文件的实现方法

核心原因

strace 默认将所有系统调用日志输出到标准错误流(stderr),而非普通命令使用的标准输出流(stdout)。你之前使用的 >、| tee 指令默认仅重定向标准输出流,因此无法捕获strace的输出,该问题和输出量大小无关。

最佳实现方案(推荐)

strace 自带专属输出参数 -o,直接指定日志存储路径即可,完全不会和目标命令的输出流冲突,无需额外处理流重定向逻辑:

strace -o strace_log.txt [你要执行的目标命令]

补充说明:

  • 如果需要将日志追加写入到已有的文件,可添加 -a 参数:strace -a -o strace_log.txt [你要执行的目标命令]
  • 如果是跟踪已运行的进程,直接搭配 -p 参数使用即可,按Ctrl+C终止跟踪后日志会自动落盘:strace -o strace_pid_log.txt -p [目标进程PID]

其他常用场景操作

场景1:仅保存strace输出到文件,控制台不打印

使用标准错误流重定向即可:

strace [目标命令] 2> strace_log.txt

如果需要同时单独保存目标命令本身的标准输出,可分开重定向:

strace [目标命令] > command_output.txt 2> strace_log.txt

场景2:strace输出同时打印到控制台和写入文件

将标准错误流合并到标准输出流后传递给tee即可:

strace [目标命令] 2>&1 | tee strace_log.txt

如果需要分开存储目标命令输出和strace日志,可使用进程替换实现:

strace [目标命令] 2> >(tee strace_log.txt) > command_output.txt

内容的提问来源于stack exchange,提问作者Milan Lakhani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 03:36:04