Linux 中的 tee 命令及示例 - Linux 命令行教程
任何在命令行上花费了足够时间的 Linux 用户最终都会遇到这样的情况:他们希望同时将标准输出和/或标准错误重定向到一个文件(或多个文件)以及终端。对于如此微不足道的事情,肯定有一种方法可以将我们的输出同时发送到两个地方。这正是 Linux 中 tee 命令的用途。
Linux Bash shell 支持将标准输入和标准输出重定向到文件或终端,但不能同时重定向到这两者。如果您遇到这样的功能很有用的情况,您可以将命令的输出通过管道传输到tee。
在本指南中,您将通过示例了解如何在 Linux 中使用 tee 命令。请按照下面的说明了解可与此命令一起使用的各种选项。
在本教程中您将学习:
如何在 Linux 上使用 tee 命令
常用选项
tee 命令语法简单,用途也非常简单,因此不需要花很长时间就能学会。以下示例将教您有关 tee 命令所需了解的所有信息,以便您能够同时将标准输出和标准错误重定向到一个文件(或多个文件)和您的终端时间。如果您不希望覆盖文件,您还将了解如何将输出附加到文件。
Linux 中的 tee 命令基本示例
您可以使用管道和 tee 命令,而不使用
>
进行正常的 Bash 重定向,而无需任何额外选项。您只需要指定要写入标准输出的文件的名称。然后,输出将显示在您的终端中,并且还将发送到文件中。$ echo example output | tee file.txt
您还可以使用 tee 将标准输出同时发送到多个文件。只需在命令中指定每个文件名的路径即可。
$ echo example output | tee file1 file2 file3
如果您还希望将标准错误重定向到文件,而不是仅在终端中显示它,则可以在管道到 tee 之前添加
2>&1
运算符。$ echo example output 2>&1 | tee file.txt
如果您需要将输出写入系统上 root 或其他用户拥有的文件,请注意您可能会发现有必要在 tee 命令前面添加
sudo
。$ echo example output | sudo tee /root/file.txt
注意
您始终可以使用 man 命令来阅读有关 tee 命令及其官方文档的更多信息。单击上一个链接可查看如何打开 Linux 系统上任何命令的手册页。
高级用法
tee 命令非常简单,您可能会发现在运行该命令时通常不会提供任何额外的选项。然而,有一些不同的选项在各种情况下绝对可以派上用场。在本指南的这一部分中,我们将向您展示一些我们认为有用的 tee 命令鲜为人知的选项。
Linux 高级示例中的 tee 命令
要附加到文件而不是覆盖它(相当于 Bash
>>
运算符),您可以使用-a
或--append
带有 tee 的选项。$ echo example output | tee -a file.txt
使用
-i
或--ignore-interrupts
选项指示tee忽略中断信号。如果用户在终端中使用Ctrl + C
发送突然中断信号,这将允许 tee 更优雅地退出。$ ping linuxconfig.org | tee -i file.txt
结束语
在本指南中,我们了解了 Linux 上的 tee 命令。当您需要同时向多个目标发送标准输出和/或标准错误时,tee 命令是您需要知道的唯一命令。正如您在前面的示例中看到的,tee 可以同时将命令输出发送到多个文件,同时仍将其显示在终端中。