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
Mac、Linux、Windows 下Go交叉编译
Bash printf命令
Tags: