Linux tee 命令是个啥?我们通过例子来看一下
tee 命令从标准输入读取数据,同时写入到标准输出和文件中。
也就是说,tee 命令的结果是,你既可以在屏幕上看到命令的输出,同时还可以将输出保存到文件中。
换言之,你有一个输入,它会被引导到两个输出。
要理解这个问题,首先你需要知道 Linux 中重定向的概念。关于重定向,可以参阅我们先前的文章:
Linux中的输入、输出和错误重定向
Linux 中的管道是什么?管道重定向是如何工作的?
该命令以电力、管道系统和其他行业中使用的 T 形接头命名,它们被称为“T”,因为它们类似于字母“T”。
以上是关于 tee 命令用途的介绍,现在我们来看看在 Linux 中怎样使用 tee 命令。
tee 命令示例
tee命令有一个简单的语法:
tee [OPTION] [FILE]
tee 命令从标准输入读取数据,所以它总是和与另外一个命令一块被使用。
我们来看几个例子。
显示命令输出并将其保存到文件
比如我们想要计算某个文件中有多少行文字,我们要在屏幕上看到它到底有多少行,同时还想要把这个行数保存到另一个文件中。
[gliu@fedora~]$ wc -l testfile.txt | tee count.txt 20 testfile.txt
文件 count.txt 原本并不存在,因此它将创建一个名为 count.txt 的新文件。如果你查看文件 count.txt 的内容,会发现其与显示在屏幕上的内容是相同的:
[gliu@fedora~]$ cat count.txt 20 testfile.txt
注意:默认情况下,tee 命令会覆盖原文件的内容。如果需要,可以使用 -a 选项来让其在文件中追加(而不是删除):
wc -l testfile.txt | tee -a count.txt
显示命令输出并将其保存到多个文件
如果要将命令输出保存到多个文件,也可以使用 tee 命令,只需指定文件即可:
[gliu@fedora~]$ wc -l testfile.txt | tee count1.txt count2.txt 20 testfile.txt
可以验证上述两个文件中是否存储了相同的内容:
[gliu@fedora~]$ cat count1.txt count2.txt 20 testfile.txt 20 testfile.txt
在 Linux 中,是可以通过 cat 命令来查看多个文件的。
将命令输出解析到另一个命令,同时将其保存到文件中
我们并不总是需要查看命令输出,由于它是标准输出,因此可以通过管道将其传输到另一个命令。
看下面的例子:
[gliu@fedora~]$ ls -l | tee count.txt | wc -l 7
上述命令中,ls -l 命令的输出通过管道传输到 tee 命令,tee 命令将 ls -l 的输出保存在 count.txt 文件中。然后,输出信息没有显示在屏幕上,而是又通过管道传输到了 wc -l 命令,该命令用于计算行数。
在本例中,我们通过屏幕看到的是 wc -l 命令的输出。ls -l 命令的输出被存储在了文件 count.txt 中。
[gliu@fedora~]$ cat count.txt total 20 -r--r--r-- 1 gliu gliu 456 Dec 11 21:29 testfile.txt -rw-r--r-- 1 gliu gliu 0 Jan 10 16:03 count.txt -rw-r--r-- 1 gliu gliu 356 Dec 17 11:39 file1.txt -rw-r--r-- 1 gliu gliu 356 Dec 17 09:59 file2.txt -rw-r--r-- 1 gliu gliu 356 Dec 11 21:35 sherlock.txt drwxr-xr-x 3 gliu gliu 4096 Jan 4 20:10 target
我们可以在平时工作中,依实际情况尽可能的发挥想象力,来使用 tee 命令。比如在分析一个很长的输出(比如日志文件)时,使用它会很方便。实时查看并将其存储在文件中以供将来参考也是非常有用的一个操作。
以上就是本次分享全部内容,欢迎讨论。
原文地址:https://mp.weixin.qq.com/s?__biz=MzI0OTQyNjU5Mw==&mid=2247484668&idx=1&sn=fce0791780335764c51ce2d068d06561&chksm=e990e332dee76a2495c18ef56c70de82147eed7a2f2b6ab79c18236ab8a97540bc5888fa4d03&scene=178&cur_album_id=1894932981526380552#rd
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。