tee 是 Linux 中的一项命令,它从标准输入读取并将输出写入标准输出和一个或多个文件,从而有效地复制输入。它通常用在 shell 脚本中,将命令输出发送到文件和控制台。
Linux 中的 Tee 命令主要与其他命令结合使用,它读取输入并响应将输出写入一个或多个文件。这样做是为了可以显示输出并同时将其保存到文件中。在本文中,我们将详细了解 tee 命令,从其语法到使用以及示例,以帮助您更好地理解它。
Syntax
下面提供了 tee 命令的语法。
tee [OPTIONS]... [FILE]...
在此选项中可以是以下内容:
-
-a(-追加):用于追加添加到文件而不是覆盖它。
-
-i :为了忽略中断信号。
对于 [FILE],请包含文件名,该文件名可以是一个或多个文件。
Linux 中的 Tee 命令
基本方式是tee命令常用的是写入文件并显示输出,即 stdout(标准输出)。
用户可以写入单个文件或多个文件,隐藏输出,可以附加到文件而不覆盖它,并且还可以在执行文件时忽略任何中断。让我们通过例子来一一理解这些。
- 写入文件
我们可以使用 tee 命令写入文件,为了演示这一点,我们将使用命令“df”检查文件系统的磁盘空间并将我们获得的所有信息作为输出写入名为“exFile.txt”的文件中。
df -h | tee exFile.txt
现在使用 cat 命令检查文件“exFile.txt”。
cat exFile.txt
- 写入多个文件
为了写入多个文件,我们将使用与上面相同的示例,但将内容保存到两个不同的文件中。您所要做的就是用空格分隔文件名。
df -h | tee firstFile.out secondFile.out
现在,如果您使用 cat 命令再次检查这两个文件,则会显示内容。
cat firstFile.out
cat secondFile.out
通过这种方式,我们可以写入一个或多个文件并保存输出以供以后使用。
- 附加到文件
这个选项“-a”非常有用,因为它有助于附加到文件而不覆盖它。这样,我们就可以保存之前的信息,并在以后向文件中添加新的信息。为此,我们首先创建一个文件“helloFile.txt”并在里面写入“Hello”。
echo "Hello" | tee -a helloFile.txt
现在我们将在其中使用“世界”这个词。
echo "World" | tee -a helloFile.txt
现在,如果我们使用 cat 命令查看文件,我们将看到它附加了最后一个单词,而不是覆盖前一个单词。
cat helloFile.txt
这样我们就可以将其追加到文件中而不覆盖它。
- 隐藏输出
如果您不希望输出显示在终端上,只需使用命令“>/dev/null”和 tee 命令将其保存在文件中。
sudo echo "There?" | tee -a helloFile.txt >/dev/null
后来我们使用 cat 命令检查了输出。
- 忽略任何中断
有时我们想要执行一个文本文件或任何其他格式的文件,但发生一些中断并且进程停止。为了忽略这些中断并希望 tee 顺利退出,我们将“-i”与 tee 命令一起使用。
在示例中,我们将 ping google 并使用中断命令,在执行时我们将用以下命令中断它:CTRL+C.
ping google.com | tee -i newFile.txt
在这里您可以看到,命令运行时被中断,但仍然顺利执行。我们可以通过使用 cat 命令查看文件来验证内容是否已添加到文件中:
cat newFile.txt
- 将 tee 与 Sudo 一起使用
如果您想写入属于 root 或 sudo 用户的文件,则必须将 sudo 与命令一起使用。
sudo echo "Please?" | sudo tee -a helloFile.txt
这样您就可以轻松访问该文件。
结论
有时,用户希望将终端中获得的输出写入文件,为此,可以使用 tee 命令。在本文中,我们向您介绍了如何在 Linux 中使用 tee 命令的各种方法,我们可以写入多个文件以及隐藏输出或附加到文件而不覆盖它。案例中提供了示例,帮助您更好地理解每个命令的用法。