Linux 中的 Tee 命令通过示例进行解释
如果您想显示命令的输出并将其同时保存到文件中,则需要 tee 命令。了解在 Linux 中使用 tee 命令的各种方法。
tee 命令从标准输入读取并写入标准输出和文件。
结果是您可以看到命令的输出,同时将其保存到文件中。
换句话说,您有一个输入被引导到两个输出。
如果您熟悉 Linux 中的重定向概念,这一切就会更有意义。
该命令以电力、管道和其他行业中使用的 T 型连接器命名。它们被称为 T 恤,因为它们类似于字母“T”。
现在您已经了解了 tee 命令的用途,让我们看看如何在 Linux 中使用 tee 命令。
Tee 命令示例
tee 命令的语法很简单:
tee [OPTION] [FILE]
请记住,tee 从标准输入读取,因此几乎所有时候,您都会在另一个命令的结合中使用它。
让我向您展示一些例子。
1.显示命令输出并保存到文件
让我们看一个基本情况,您想要计算文件中的行数。您想要查看文件中有多少行并将该行数保存到另一个文件中。
abhishek@linux:~$ wc -l agatha.txt | tee count.txt
20 agatha.txt
文件 count 不存在,因此它将创建一个名为 count 的新文件。如果您看到文件计数的内容,您将看到与在显示屏上看到的相同输出。
abhishek@linux:~$ cat count.txt
20 agatha.txt
注意:默认情况下,tee 命令会覆盖文件的内容。如果您愿意,可以使用附加选项 -a :
wc -l agatha.txt | tee -a count.txt
2.显示命令输出并保存到多个文件
如果要将命令输出保存到多个文件,也可以使用 tee 命令来完成。您只需指定文件即可。
abhishek@linux:$ wc -l agatha.txt | tee count1.txt count2.txt
20 agatha.txt
您可以验证相同的输出是否已存储在提到的两个文件中。
abhishek@linux:~$ cat count1.txt count2.txt
20 agatha.txt
20 agatha.txt
我希望您知道在 Linux 中您可以使用 cat 命令来查看多个文件。
3. 将命令输出解析为另一个命令,同时将其保存到文件中
您并不总是需要查看命令输出。由于它是标准输出,因此您可以将其传输到另一个命令。
以下面的命令为例。
abhishek@linux:~$ ls -l | tee count.txt | wc -l
7
这里发生的情况是“ls -l”命令的输出通过管道传输到 tee 命令。现在,tee 命令将“ls -l”的输出存储在 count.txt 文件中,但不是显示此输出,而是通过管道传输到“wc -l”命令来计算行数。
在本例中您看到的输出是“wc -l”命令的输出。 ‘ls -l’命令的输出存储在文件 count.txt 中。
abhishek@linux:~$ cat count.txt
total 20
-r--r--r-- 1 abhishek abhishek 456 Dec 11 21:29 agatha.txt
-rw-r--r-- 1 abhishek abhishek 0 Jan 10 16:03 count.txt
-rw-r--r-- 1 abhishek abhishek 356 Dec 17 11:39 file1.txt
-rw-r--r-- 1 abhishek abhishek 356 Dec 17 09:59 file2.txt
-rw-r--r-- 1 abhishek abhishek 356 Dec 11 21:35 sherlock.txt
drwxr-xr-x 3 abhishek abhishek 4096 Jan 4 20:10 target
结论
使用 tee 命令实际上取决于您的想象力和您的情况。当我必须分析日志文件等冗长的输出时,我发现它很方便。实时查看并存储在文件中以供将来参考会有所帮助并节省我一些时间。
我希望您喜欢我在这里列出的 tee 命令示例。如果您想到使用此命令的一些非常棒的方法,请在评论部分与我们其他人分享。