如何在 Linux 中使用“tee”命令 [8 个有用示例]

几乎所有高级用户在与 Linux 系统交互时都喜欢使用命令行界面。默认情况下,在标准输出流上显示它们的输出。但是,有时我们需要将此输出存储在文件中以进行调试。

当然,我们可以使用重定向运算符来实现这一点。但是,此方法的一个小限制是它仅将输出存储在文件中。

为了克服这个限制,我们可以发球命令从标准输入流读取并写入标准输出流和文件。

在本实用指南中,我们将看到 tee 命令的各种示例。在本指南结束时,Linux 用户将能够使用 tee 命令来满足他们的编程需求。

tee 命令语法

的语法球座命令与其他 Linux 命令类似。在较高的层面上,它分为两组——OPTIONSFILES:

$ tee [OPTIONS] [FILE1] [FILE2] [FILE3] ...

在上面的语法中,两者OPTIONSFILES是可选参数。

1. 在 Linux 中将输出保存到文件

正如前面所讨论的,球座命令将输出发送到标准输出以及文件。为了理解这一点,首先让我们使用在标准输出流上显示文本:

$ echo "tecmint.com"

现在,让我们使用发球命令将输出写入输出.txt文件:

$ echo "tecmint.com" | tee output.txt

最后查看内容输出.txt文件使用。

$ cat output.txt
在 Linux 中将输出保存到文件

在上面的输出中,我们可以看到发球命令将输出发送到文件以及标准输出流。

2. 在 Linux 中将输出附加到文件

默认情况下,发球命令覆盖输出文件。但是,我们可以通过启用附加模式来避免这种情况,该模式将输出附加到文件末尾:

$ echo "tecmint.com" | tee -a output.txt 
$ cat output.txt 
将输出附加到 Linux 中的文件

在这个例子中,我们使用了-a启用附加模式的选项。

3. 在 Linux 中将输出写入多个文件

同样,我们可以使用球座命令将输出写入多个文件,如图所示。

$ echo "tecmint.com" | tee file-1.txt file-2.txt file-3.txt

在此示例中,我们提供了多个文件作为命令行参数。现在,让我们使用显示文件的内容:

$ head -v file-1.txt file-2.txt file-3.txt
将输出写入 Linux 中的多个文件

4. 将一个命令的输出发送到另一个命令

此外,我们还可以使用球座使用管道运算符的命令(|)。当我们想要存储输出并将其转发到另一个命令时,此方法会派上用场。

$ echo "tecmint.com" | tee example.txt | wc -c
$ cat example.txt
将命令的输出发送到另一个命令

在这个例子中,首先,我们使用球座命令将输出写入文件。接下来,我们将使用来计算字符数。

5. 在 Linux 中隐藏文件的输出

在前面的示例中,我们使用了球座命令将输出发送到标准输出。然而,在一些罕见的情况下,我们想要抑制输出。在这种情况下,我们可以将输出重定向到/dev/空设备:

$ echo "tecmint.com" | tee output.txt > /dev/null
$ cat output.txt
在 Linux 中隐藏文件的输出

6. 将输出写入特权文件

有时,我们需要将输出写入特权文件。然而,我们不能仅使用球座命令。在这种情况下,我们可以结合使用须藤球座命令。

首先,让我们使用以下命令更改文件的所有权:

$ sudo chown root:root output.txt

接下来,我们将一些文本附加到输出.txt使用以下命令创建文件:

$ echo "tecmint.com" | sudo tee -a output.txt

最后,我们来验证一下文件是否已经更新成功。

将输出写入特权文件

7. 在Linux中编辑特权文件

以类似的方式,我们可以使用须藤球座命令来编辑特权文件。为了理解这一点,首先,让我们打开一个特权文件并向其中添加一些文本:

$ vim output.txt

现在,让我们使用下面的维姆更新文件的命令:

:w !sudo tee %

8. 忽略中断信号(SIGINT)

在Linux中,我们使用Ctrl+c组合键发送信号情报信号。该信号的默认行为是终止进程。但是,我们可以使用-i忽略中断的选项:

$ echo "tecmint.com" | tee -i example.txt
$ cat example.txt
忽略中断信号

在本指南中,我们了解了球座命令使用一些实际示例。用户在通过命令行界面使用 Linux 系统时可以参考本指南。

你还知道其他最好的例子吗?球座Linux 中的命令?请在下面的评论中告诉我们您的看法。