linux重定向文件过大,关于linux:如何将输出重定向到文件和标准输出

本文介绍了如何在Linux中使用`tee`命令将命令的输出同时重定向到文件和标准输出。通过`command | tee output.file`,可以实现在终端显示输出的同时将内容保存到文件。若要追加内容,可以使用`command | tee -a output.file`。此外,`2>&1`用于将错误输出重定向到标准输出,以便一起处理。
摘要由CSDN通过智能技术生成

在bash中,调用foo将在stdout上显示该命令的任何输出。

调用foo > output会将该命令的任何输出重定向到指定的文件(在本例中为"output")。

有没有方法将输出重定向到一个文件,并在stdout上显示它?

如果有人在这里寻找错误输出到文件,请查看-unix.stackexchange.com/questions/132511/…

术语说明:当执行foo > output时,数据被写入stdout,stdout是名为output的文件。也就是说,写入文件就是写入stdout。您询问是否可以同时向stdout和终端写入。

您需要的命令名为tee:

foo | tee output.file

例如,如果您只关心stdout:

ls -a | tee output.file

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

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

2>&1将通道2(stderr/standard error)重定向到通道1(stdout/standard output),使两者都写为stdout。从tee命令开始,它也被定向到给定的输出文件。

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

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

如果OP希望"所有输出"被重定向,还需要获取stderr:"ls-lr/2>&1 tee output.file"

这个答案是错误的,下面的答案是正确的,不确定所有的赞成票是关于什么的。

@埃文麦克唐纳的答案并不是错的,只是可能不够具体,也可能不够完整,这取决于你的要求。在某些情况下,您可能不希望stderr作为保存到文件的输出的一部分。当我5年前回答这个问题的时候,我假设那个组织只想要性传播疾病,因为他在帖子里提到了性传播疾病。

啊,对不起,我可能有点困惑。当我尝试的时候,我只是没有输出&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值