初学者的Linux tee命令解释(6个例子)
有些时候,你想手动跟踪命令的输出,同时也要确保输出正在写入文件,以便以后可以参考。 如果你正在寻找一个可以为你做这个的Linux工具,你会很高兴知道有一个命令tee是为此目的而建造的。
在本教程中,我们将使用一些易于理解的示例来讨论tee命令的基础知识。 但在这之前,值得一提的是,本文中使用的所有示例都已在Ubuntu 16.04 LTS上进行了测试。
Linux的tee命令
tee命令基本上从标准输入读取并写入标准输出和文件。 以下是该命令的语法:
tee [OPTION]... [FILE]...
下面是手册页的解释:
Copy standard input to each FILE, and also to standard output.
下面的Q&A样式的例子应该让你更好地了解这个命令是如何工作的。
Q1, 如何在Linux中使用tee命令?
假设您出于某种原因正在使用ping命令。
ping google.com
而你想要的是,输出也应该写入并行文件。 那么这里是你可以使用tee命令的地方。
ping google.com | tee output.txt
以下屏幕截图显示输出写入“output.txt”文件并写入stdout。
所以应该明确三通的基本用法。
Q2。 如何确保tee在文件中追加信息?
默认情况下,再次使用时,tee命令会覆盖文件中的信息。 但是,如果需要,可以使用-a命令行选项更改此行为。
[command] | tee -a [file]
所以基本上,-a选项强制三通将信息追加到文件中。
Q3。 如何使发球写入多个文件?
这很容易。 你只需要提及他们的名字。
[command] | tee [file1] [file2] [file3]
例如:
ping google.com | tee output1.txt output2.txt output3.txt
Q4。 如何使一个命令的输出重定向到另一个?
您不仅可以使用tee同时将输出写入文件,还可以将输出作为输入传递给其他命令。 例如,以下命令不仅将文件名存储在“output.txt”中,而且还通过wc - output.txt文件中的条目数来让您知道。
ls file* | tee output.txt | wc -l
Q5。 如何使用tee写入具有提升权限的文件?
假设你在Vim编辑器中打开了一个文件,进行了很多修改,然后当你试图保存这些修改时,你得到了一个错误,让你意识到这是一个根文件,这意味着你需要有sudo权限来保存这些变化。
在这样的场景中,您可以使用tee在旅途中提升权限。
:w !sudo tee %
上述命令会询问你的root密码,然后让你保存更改。
Q6。 如何让T恤忽略中断?
使用-i命令行选项可以使tee忽略通常在按crl + c组合键时发出的中断信号( SIGINT
)。
[command] | tee -i [file]
当你想用ctrl + c杀死命令,但希望三通正常退出时,这很有用。
结论
你现在可能会同意,发球是一个非常有用的命令。 我们已经讨论过它的基本用法以及这里的大部分命令行选项。 这个工具没有一个陡峭的学习曲线,所以只是练习所有这些例子,你应该很好走。 有关更多信息,请转到该工具的手册页 。