tee 命令是個(gè)啥?我們通過(guò)例子來(lái)看一下
tee 命令從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù),同時(shí)寫(xiě)入到標(biāo)準(zhǔn)輸出和文件中。
也就是說(shuō),tee 命令的結(jié)果是,你既可以在屏幕上看到命令的輸出,同時(shí)還可以將輸出保存到文件中。
換言之,你有一個(gè)輸入,它會(huì)被引導(dǎo)到兩個(gè)輸出。
要理解這個(gè)問(wèn)題,首先你需要知道 Linux 中重定向的概念。關(guān)于重定向,可以參閱我們先前的文章:
Linux中的輸入、輸出和錯(cuò)誤重定向
Linux 中的管道是什么?管道重定向是如何工作的?
該命令以電力、管道系統(tǒng)和其他行業(yè)中使用的 T 形接頭命名,它們被稱(chēng)為“T”,因?yàn)樗鼈冾?lèi)似于字母“T”。
以上是關(guān)于 tee 命令用途的介紹,現(xiàn)在我們來(lái)看看在 Linux 中怎樣使用 tee 命令。
tee 命令示例
tee命令有一個(gè)簡(jiǎn)單的語(yǔ)法:
tee 命令從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù),所以它總是和與另外一個(gè)命令一塊被使用。
我們來(lái)看幾個(gè)例子。
顯示命令輸出并將其保存到文件
比如我們想要計(jì)算某個(gè)文件中有多少行文字,我們要在屏幕上看到它到底有多少行,同時(shí)還想要把這個(gè)行數(shù)保存到另一個(gè)文件中。
文件 count.txt 原本并不存在,因此它將創(chuàng)建一個(gè)名為 count.txt 的新文件。如果你查看文件 count.txt 的內(nèi)容,會(huì)發(fā)現(xiàn)其與顯示在屏幕上的內(nèi)容是相同的:
注意:默認(rèn)情況下,tee 命令會(huì)覆蓋原文件的內(nèi)容。如果需要,可以使用 -a 選項(xiàng)來(lái)讓其在文件中追加(而不是刪除):
顯示命令輸出并將其保存到多個(gè)文件
如果要將命令輸出保存到多個(gè)文件,也可以使用 tee 命令,只需指定文件即可:
可以驗(yàn)證上述兩個(gè)文件中是否存儲(chǔ)了相同的內(nèi)容:
在 Linux 中,是可以通過(guò) cat 命令來(lái)查看多個(gè)文件的。
將命令輸出解析到另一個(gè)命令,同時(shí)將其保存到文件中
我們并不總是需要查看命令輸出,由于它是標(biāo)準(zhǔn)輸出,因此可以通過(guò)管道將其傳輸?shù)搅硪粋€(gè)命令。
看下面的例子:
上述命令中,ls -l 命令的輸出通過(guò)管道傳輸?shù)?tee 命令,tee 命令將 ls -l 的輸出保存在 count.txt 文件中。然后,輸出信息沒(méi)有顯示在屏幕上,而是又通過(guò)管道傳輸?shù)搅?wc -l 命令,該命令用于計(jì)算行數(shù)。
在本例中,我們通過(guò)屏幕看到的是 wc -l 命令的輸出。ls -l 命令的輸出被存儲(chǔ)在了文件 count.txt 中。
我們可以在平時(shí)工作中,依實(shí)際情況盡可能的發(fā)揮想象力,來(lái)使用 tee 命令。比如在分析一個(gè)很長(zhǎng)的輸出(比如日志文件)時(shí),使用它會(huì)很方便。實(shí)時(shí)查看并將其存儲(chǔ)在文件中以供將來(lái)參考也是非常有用的一個(gè)操作。
以上就是本次分享全部?jī)?nèi)容,歡迎討論。