Categories: Shell业界编程

tee命令–将输出到屏幕和文件

Linux tee命令是一个非常简单但有用的实用程序。一个命令只有两个选项是不寻常的,但有时少则多。tee命令服务的目的是优雅的来处理输出。
在本文中,我们将介绍基本用法,以及tee的一些更有趣和更高级的用例。就像tee所暗示的那样,它通过将输入和输出路由到两个不同的位置(stdout和一个文件),就像管道中的tee连接器一样工作。

基本tee命令用法

在最基本的用法中,您只需将命令传递给tee并为其提供文件名。这将使命令仍然可以打印到屏幕上,也可以将结果保存在文件中。在此示例中,我们将寻找在/etc/passwd中使用bash shell的用户,并将输出打印到stdout和名为output.txt的文件中。

$ grep bash /etc/ passwd | tee output.txt 
root:x:0:0:root:/root:/bin/bash 
jack:x:1000:1000:jack:/home/jack /bin/bash 

$ cat output.txt 
root:x:0:0:root:/root:/bin/bash 
jack:x:1000:1000:jack:/home/jack /bin/bash 

将输出发送到多个文件

您可以将数据从tee命令一次发送到多个文件。为此,您只需在tee命令之后添加文件列表。

grep bash /etc/passwd | tee output.txt file2.txt file3.txt

多个输出文件将具有相同的内容。

使用tee命令附加到文件

tee命令可使用的两个选项之一是附加(-a)。这将允许您将其他行附加到现有文件。默认行为是覆盖文件的内容。

$ grep bash /etc/passwd | tee -a output.txt

输出显示在屏幕上,并附加到output.txt文件。

忽略中断

最后一个选项是忽略中断(-i)。这告诉tee如果用户发送中断(CTRL + C),则继续并优雅地退出

$ grep GET access.log | tee -i log-get.txt
5.0
02
Mac、Linux、Windows 下Go交叉编译
Bash printf命令
嘻嘻

嘻嘻IT: 笔者是一个工作七八年的程序猿老鸟,从事涉及的技术栈主要包括PHP、Linux、Devops等,喜欢研究新技术,尝试新技术,提升技术自动化和开发效率,致力于write less,do more! 技术每年都会层出不穷,领域划分的越来越细,不可能学习所有的东西,保持对技术的好奇心,理解技术中核心思想,做一个有深度,有思想的开发!

Recent Posts

PHP Composer如何安装?

PHP Composer是PH…

2天 ago

MacOS上Missing xcrun的问题

在使用MacOS进行编程或开发…

2天 ago

CodeGeeX是一款基于大模型的全能AI编程助手

CodeGeeX是一个面向开发…

2天 ago

MySQL覆盖索引详解

在数据库性能优化中,索引是一个…

2天 ago

后端程序员必备:SQL优化的20条建议

SQL优化查询对于后端程序员来…

2天 ago