Linux Tee 命令教程与初学者示例

在 Linux 中使用终端时,有许多命令行实用程序可以让您的生活变得轻松。 一种这样的实用程序是 Tee. 在这个简短的指南中,我们将通过实际示例了解什么是 Tee 以及 Linux 中 Tee 命令的用法。

内容

  1. Tee 命令介绍
  2. 显示 tee 命令帮助
  3. Tee 命令语法
  4. 面向初学者的 Linux Tee 命令示例
    1. 将 tee 命令与 Pipe 运算符一起使用
    2. 传递多个文件
    3. 覆盖与追加
    4. 将 Tee 与重定向运算符结合使用
    5. 中断信号
  5. 概括

Tee 命令介绍

tee 是一个简单的命令行实用程序,它接受输入并将输出写入文件和标准输出(即终端)。 当您想要将输出重定向到多个文件并进一步处理输出时,Tee 命令将主要用于 shell 脚本中。

Tee 命令是 GNU coreutils,因此它预装在所有 Linux 发行版中。

要检查 tee 命令在您的 Linux 发行版中是否可用,请运行以下命令:

$ which tee /usr/bin/tee

要检查 tee 版本,您可以使用 --version 旗帜。

$ tee --version tee (GNU coreutils) 8.32

显示 tee 命令帮助

如果您从未使用过 tee 命令,最好从 tee 命令帮助部分开始。

您可以访问 tee 命令的手册页以了解有关此实用程序的更多信息。

$ man tee

您还可以通过 --help tee 命令的参数以显示其帮助手册。

$ tee --help

Tee 命令语法

Tee 命令的典型语法如下:

球座 [OPTION]… [FILE]…

它接受输出将被重定向的标志和文件名。

有两个重要的标志,您将主要与 tee 命令一起使用。

  • -a, --append 标志:附加到文件。
  • -i, -ignore-interrupts 标志:忽略中断信号。

现在让我向您展示 Linux 中 tee 命令的几个示例。

面向初学者的 Linux Tee 命令示例

如前所述,tee 命令将接受输入并将输出打印到终端以及作为参数传递的文件。

在下面的示例中,tee 命令从 echo 命令并将输出打印到终端以及 hello.txt 文件。

$ echo "Welcome to OSTechNix" | tee hello.txt Welcome to OSTechNix

让我们检查一下内容 hello.txt 文件:

$ cat hello.txt  Welcome to OSTechNix
Linux 中的 Tee 命令使用示例

将 tee 命令与 Pipe 运算符一起使用

Tee 命令不仅仅是将标准输入打印到终端,还将其通过管道传输到另一个程序中进行进一步处理。

大多数 tee 命令将与 pipe (|) shell 脚本中的运算符。

看看下面的例子。

$ echo "Hello world" | tee hello.txt | rev dlrow olleH
$ cat hello.txt Hello world

让我解释一下运行上述命令时会发生什么。

  • echo 命令将发送其输出 "Hello World" 作为输入 tee 通过管道命令。
  • Tee 命令将输出存储在给定的文件中 hello.txt.
  • 不是将输出打印到终端,这是默认行为, tee 命令传递 "Hello World" 字符串作为输入 rev 打印字符串的命令 相反的顺序.

这是另一个例子。

以下命令创建一个名为“ostechnix”的目录,计算“ostechnix”中的字符数并将“ostechnix”打印到终端:

$ echo "ostechnix" | tee >(xargs mkdir) >(wc -c)

当心: 您可能需要使用 sudotee 命令,如果您在普通用户无权访问的目录中创建文件。

传递多个文件

Tee 命令还接受多个文件作为参数并将输出存储到每个文件。

$ echo "Welcome to OSTechNix" | tee hello1.txt hello2.txt hello3.txt Welcome to OSTechNix

让我们检查每个文件的内容:

$ cat hello1.txt
Welcome to OSTechNix
$ cat hello2.txt
Welcome to OSTechNix
$ cat hello3.txt
Welcome to OSTechNix
使用 tee 命令将输出发送到多个文件

覆盖与追加

的默认行为 tee 命令是它将搜索文件是否已经可用并使用新文件覆盖数据。 如果该文件不可用,它将创建该文件。

如果您希望附加数据而不是覆盖,请使用 -a 或者 --append 旗帜。

$ cat hello1.txt Welcome to OSTechNix
$ echo "I am using PoP_OS Cosmic Desktop" | tee -a hello1.txt I am using PoP_OS Cosmic Desktop
$ cat hello1.txt Welcome to OSTechNix I am using PoP_OS Cosmic Desktop

将 Tee 与重定向运算符结合使用

如果您不希望将输出打印到终端,而只是将输出写入文件,则可以将重定向运算符与 tee 命令结合使用。

只有当 tee 命令出现在您的管道链中时,这是一个理想的情况。 如果 tee 输出通过管道传输到另一个命令,例如 as
在第一个示例中显示,不需要使用重定向运算符。

$ echo "I am using PoP_OS Cosmic Desktop" | tee -a hello1.txt &> /dev/null

中断信号

Tee 命令可以选择使用以下命令中断 SIGINT -i 或者 --ignore-interrupts 旗帜。

含义 – 如果你按下 CTRL + C 在您的终端中运行 tee 命令时 -i 标志,tee 命令将中断信号并通过从 PIPE 读取 EOF 来正常退出。

$ { echo Hello world;sleep 10; } | tee -i hello1.txt
Hello world
^C
$ cat hello1.txt
Hello world

概括

Tee 是一个简单的程序,您可能不会每天都使用它。 但是,当您编写 shell 脚本时,了解 tee 命令会派上用场。 希望这可以帮助。

CLI命令行命令行提示命令行工具LinuxLinux基础知识Linux命令Linux howtoLinux tipsTee命令