Linux中的Tee命令示例说明

时间:2020-03-05 15:29:52  来源:igfitidea点击:

tee命令从标准输入读取并写入标准输出和文件。

结果是我们可以看到命令的输出并将其同时保存到文件中。

换句话说,我们有一个输入通道到两个输出通道。

如果我们熟悉Linux中的重定向概念,那么所有这些都将更有意义。

该命令以在电力,管道和其他行业中使用的T型连接器命名。

之所以将其称为“ tee”是因为它们类似于字母“ T”。

现在,我们了解了tee命令的用途,让我们看看如何在Linux中使用tee命令。

Tee命令示例

tee命令具有简单的语法:

tee [OPTION] [FILE]

请记住,Tee几乎总是从标准输入中读取内容,因此我们会在结合另一个命令时使用它。

让我向我们展示一些示例。

1.显示命令输出并将其保存到文件

让我们以一个基本情况为例,我们要计算文件中的行数。

我们想查看文件中有多少行,并将该行保存到另一个文件中。

Hyman@theitroad:~$wc -l agatha.txt | tee count.txt
20 agatha.txt

文件计数不存在,因此它将创建一个名为count的新文件。
如果我们看到文件计数的内容,我们将看到与在显示屏上看到的相同的输出。

Hyman@theitroad:~$cat count.txt 
20 agatha.txt

注意:默认情况下,tee命令将覆盖文件的内容。
如果需要,可以将添加选项-a与它一起使用:wc -l agatha.txt | T恤-a count.txt

2.显示命令输出并将其保存到多个文件

如果要将命令输出保存到多个文件,也可以使用tee命令来执行。
我们只需要指定文件即可。

Hyman@theitroad:$wc -l agatha.txt | tee count1.txt count2.txt
20 agatha.txt

我们可以验证相同的输出已存储在上述两个文件中。

Hyman@theitroad:~$cat count1.txt count2.txt 
20 agatha.txt
20 agatha.txt

我希望我们知道我们可以在Linux中与cat命令一起看到多个文件。

3.将命令输出解析为另一个命令,同时将其保存到文件中

我们不一定总是需要查看命令输出。
由于它是标准输出,因此可以通过管道将其输出到另一个命令。

以下面的命令为例。

Hyman@theitroad:~$ls -l | tee count.txt | wc -l
 7

此处发生的是将“ ls -l”命令的输出通过管道传递给tee命令。
现在,tee命令将'ls -l'的输出存储在count.txt文件中,而不是显示此输出,而是通过管道传递到计算行数的'wc -l'命令。

在这种情况下,我们看到的输出是“ wc -l”命令的输出。
“ ls -l”命令的输出存储在文件count.txt中。

Hyman@theitroad:~$cat count.txt 
 total 20
 -r--r--r-- 1 igi igi  456 Dec 11 21:29 agatha.txt
 -rw-r--r-- 1 igi igi    0 Jan 10 16:03 count.txt
 -rw-r--r-- 1 igi igi  356 Dec 17 11:39 file1.txt
 -rw-r--r-- 1 igi igi  356 Dec 17 09:59 file2.txt
 -rw-r--r-- 1 igi igi  356 Dec 11 21:35 sherlock.txt
 drwxr-xr-x 3 igi igi 4096 Jan  4 20:10 target