不得不知的Linux tee命令

在linux中,我们我们重定向到文件中,可以使用>和>>。>是重定向到一个文件,>>是将输出内容追加到目标文件中。如果文件不存在,就创建文件;如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响。两个命令都是如果文件不存在则创建文件。

但是今天我们讲的这个主角是tee命令。tee的作用是将一份标准输入多重定向,一份重定向到标准输出/dev/stdout,然后还将标准输入重定向到每个文件FILE中。

tee可以把一份数据同时写入几个文件中,而>>只能把一份数据写入到一个文件中。下面我们开始讲解tee命令。

Linux tee 命令

tee - 从标准输入写往文件和标准输出,tee语法格式:

tee [OPTION]… [FILE]…

描述

把标准输入的数据复制到每一个文件 FILE, 同时送往标准输出.
-a, --append
追加到 给出的 文件, 而不是覆盖
-i, --ignore-interrupts
忽略 中断信号
–help
显示 帮助信息, 然后 结束
–version
显示 版本信息, 然后 结束

实例

假设使用cur命令行访问URL,发出网络请求,然后得到和提取数据,显示就会在"标准输出"(stdout)上面。但是你想输出信息也同时能写入文件。这个时候tee就派上用场了。

首先先ping 一下网站。

ping www.google.com

在这里插入图片描述

看上面的信息,网站是可以ping通的。下面我们可以模拟一个请求curl -s “www.google.com”

在这里插入图片描述
其实curl命令,抓取页面内容的时候,也可以输出到一个文件中,例如这样使用。

curl -c cookies.txt https://www.google.com

在这里插入图片描述-c参数将服务器设置的 Cookie 写入一个文件。上面命令将服务器的 HTTP 回应所设置 Cookie 写入文本文件cookies.txt。

cat cookies.txt

在这里插入图片描述

使用tee将命令输出保存到多个文件

可以将命令的输出写入空格分隔的文件,如下面的语法所示:

command | tee file1 file2 file3 . . .

tee可以写入多个文件,每个文件之间使用空格分隔。下面可以使用cat命令确认两个文件中的输出是否存在,如下所示:
在这里插入图片描述

如果要隐藏或禁止tee命令在屏幕上打印输出,请将输出重定向到/dev/null,可以这样做:

free -h | tee output1.txt output2.txt > /dev/null

使用tee命令将输出附加到文件

默认情况下,tee命令覆盖文件的内容。但是使用-a选项或者–append,这样可以使附加输出并防止擦除当前内容。

在这里插入图片描述
在以上示例中,我们使用df命令获取有关文件系统上可用磁盘空间量的信息。并将标准输出通过管道传递到tee命令,tee命令将输出到终端的信息写入文件df.output。最后可以使用cat来验证。

使用tee命令时忽略中断信号

在tee命令中使用“-i”选项可以忽略中断信号(CTRL-C),示例如下所示:

在这里插入图片描述
当你想要使用CTRL-C 中断该命令,同时让 tee 命令优雅的退出,这个选项尤为实用。

总结

tee命令从标准输入中读取并同时写入标准输出和一个或多个文件。tee最常与其他命令通过管道结合使用。

在这里插入图片描述

**欢迎关注微信公众号【程序猿编码】,添加本人微信号(17865354792),回复:**领取学习资料。或者回复:进入技术交流群。网盘资料有如下:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值