为了账号安全,请及时绑定邮箱和手机立即绑定

如何将输出重定向到文件和stdout

如何将输出重定向到文件和stdout

智慧大石 2019-07-08 14:51:43
如何将输出重定向到文件和stdout在巴什,打电话foo将在stdout上显示该命令的任何输出。呼叫foo > output将任何输出从该命令重定向到指定的文件(在本例中为“Output”)。是否有将输出重定向到文件的方法?和它在标准架上显示了吗?
查看完整描述

3 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

您想要的命令名为tee:

foo | tee output.file

例如,如果您只关心stdout:

ls -a | tee output.file

如果要包含stderr,请执行以下操作:

program [arguments...] 2>&1 | tee outfile

2>&1将通道2(标准错误/标准错误)重定向到通道1(标准输出/标准输出),以便两者都被写入标准输出。它也被定向到给定的输出文件。tee命令。

此外,如果你想附加到日志文件,使用tee -a作为:

program [arguments...] 2>&1 | tee -a outfile


查看完整回答
反对 回复 2019-07-08
?
跃然一笑

TA贡献1826条经验 获得超6个赞

另一种适合我的方法是,

<command> |& tee  <outputFile>

如图所示GNU bash手册

例子:

ls |& tee files.txt

如果使用的是“x&”,则命令1的标准误差,除了标准输出,通过管道连接到命令2的标准输入;2>和1的简写|。在命令指定的任何重定向之后,将标准错误隐式重定向到标准输出。

有关更多信息,请参见重定向


查看完整回答
反对 回复 2019-07-08
  • 3 回答
  • 0 关注
  • 1695 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信