ZetCode

Linux tee 命令

最后修改时间:2025年3月3日

Linux 中的 tee 命令用于从标准输入读取,并同时写入标准输出和一个或多个文件。它是一个强大的工具,可以将输出重定向到多个目的地。本教程通过实际示例介绍了 tee 的基本和高级用法。

tee 通常用于日志记录、调试和分割输出流。

基本用法

此示例演示了如何使用 tee 将输出写入文件,同时在终端上显示。

echo "Hello, World!" | tee output.txt

tee 命令将 "Hello, World!" 写入 output.txt 并在终端上显示。

追加到文件

此示例展示了如何使用 tee 将输出追加到文件。

echo "New line" | tee -a output.txt

-a 选项会将输出追加到 output.txt,而不是覆盖它。

写入多个文件

此示例演示了如何同时将输出写入多个文件。

echo "Multiple files" | tee file1.txt file2.txt

tee 命令将输出写入 file1.txtfile2.txt

与其他命令结合使用

此示例展示了如何将 teegrep 等其他命令一起使用。

ls -l | tee files.txt | grep ".txt"

ls -l 的输出被保存到 files.txt,并过滤掉包含 ".txt" 的行。

忽略中断

此示例演示了如何使用 tee 忽略中断信号。

ping example.com | tee -i ping.log

-i 选项确保即使在中断时 tee 也会继续写入。

抑制输出

此示例展示了如何在写入文件时抑制终端输出。

echo "No terminal output" | tee output.txt > /dev/null

输出被写入 output.txt,但不在终端上显示。

写入文件并管道传输

此示例演示了如何写入文件并将输出管道传输到另一个命令。

echo "Pipe and file" | tee output.txt | wc -l

输出被写入 output.txt 并通过管道传输到 wc -l 来计算行数。

与 sudo 一起使用

此示例展示了如何将 teesudo 一起使用来写入受保护的文件。

echo "New line" | sudo tee -a /etc/hosts

sudo 命令允许写入 /etc/hosts

tee 的最佳实践

来源

GNU tee 手册

在本文中,我们探讨了使用 tee 命令将输出重定向到文件和终端的各种示例,包括追加和忽略中断等高级功能。

作者

我的名字是 Jan Bodnar,我是一位充满激情的程序员,拥有丰富的编程经验。我自 2007 年以来一直在撰写编程文章。迄今为止,我已撰写了 1,400 多篇文章和 8 本电子书。我在编程教学方面拥有十多年的经验。

列出所有 Linux 教程