为初学者介绍的 Linux tee 命令(6 个例子)
创始人
2024-03-01 22:07:45
0

有时候,你会想手动跟踪命令的输出内容,同时又想将输出的内容写入文件,确保之后可以用来参考。如果你想寻找这相关的工具,那么恭喜你,Linux 已经有了一个叫做 tee 的命令可以帮助你。

本教程中,我们将基于 tee 命令,用一些简单的例子开始讨论。但是在此之前,值得一提的是,本文我们所有的测试实例都基于 Ubuntu 16.04 LTS。

Linux tee 命令

tee 命令基于标准输入读取数据,标准输出或文件写入数据。感受下这个命令的语法:

tee [OPTION]... [FILE]...

这里是帮助文档的说明:

从标准输入中复制到每一个文件,并输出到标准输出。

让 Q&A(问&答)风格的实例给我们带来更多灵感,深入了解这个命令。

Q1、 如何在 Linux 上使用这个命令?

假设因为某些原因,你正在使用 ping 命令。

ping google.com

如何在 Linux 上使用 tee 命令

然后同时,你想要输出的信息也同时能写入文件。这个时候,tee 命令就有其用武之地了。

ping google.com | tee output.txt

下面的截图展示了这个输出内容不仅被写入 output.txt 文件,也被显示在标准输出中。

tee command 输出

如此应当明白了 tee 的基础用法。

Q2、 如何确保 tee 命令追加信息到文件中?

默认情况下,在同一个文件下再次使用 tee 命令会覆盖之前的信息。如果你想的话,可以通过 -a 命令选项改变默认设置。

[command] | tee -a [file]

基本上,-a 选项强制 tee 命令追加信息到文件。

Q3、 如何让 tee 写入多个文件?

这非常之简单。你仅仅只需要写明文件名即可。

[command] | tee [file1] [file2] [file3]

比如:

ping google.com | tee output1.txt output2.txt output3.txt

如何让 tee 写入多个文件

Q4. 如何让 tee 命令的输出内容直接作为另一个命令的输入内容?

使用 tee 命令,你不仅可以将输出内容写入文件,还可以把输出内容作为另一个命令的输入内容。比如说,下面的命令不仅会将文件名存入 output.txt 文件中,还会通过 wc 命令让你知道输入到 output.txt 中的文件数目。

ls file* | tee output.txt | wc -l

如何让 tee 命令的输出内容直接作为另一个命令的输入内容

Q5. 如何使用 tee 命令提升文件写入权限?

假如你使用 Vim 编辑器 打开文件,并且做了很多更改,然后当你尝试保存修改时,你得到一个报错,让你意识到那是一个 root 所拥有的文件,这意味着你需要使用 sudo 权限保存修改。

如何使用 tee 命令提升文件写入权限

如此情况下,你可以(在 Vim 内)使用 tee 命令来提高权限。

:w !sudo tee %

上述命令会向你索要 root 密码,然后就能让你保存修改了。

Q6. 如何让 tee 命令忽视中断?

-i 命令行选项使 tee 命令忽视通常由 ctrl+c 组合键发起的中断信号(SIGINT)。

[command] | tee -i [file]

当你想要使用 ctrl+c 中断该命令,同时让 tee 命令优雅的退出,这个选项尤为实用。

总结

现在你可能已经认同 tee 是一个非常实用的命令。基于 tee 命令的用法,我们已经介绍了其绝大多数的命令行选项。这个工具并没有什么陡峭的学习曲线,所以,只需跟随这几个例子练习,你就可以运用自如了。更多信息,请查看 帮助文档.


via: https://www.howtoforge.com/linux-tee-command/

作者:Himanshu Arora 译者:CYLeft 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

Teeni.AI 袁琳:1...
如果说 80 后、90 后是互联网的原住民,那么 10 后,则是 ...
2025-12-12 18:15:37
智谱GLM-4.6V系列多...
IT之家 12 月 8 日消息,智谱 AI 今日官宣发布并开源 G...
2025-12-08 20:15:56
美团发布开源LongCat...
IT之家 10 月 27 日消息,今天上午,美团 LongCat ...
2025-10-27 11:44:43
来,秀出你的开源活力!中国...
GOTC 2025 全球开源技术峰会 —— 中国开源项目大赏 20...
2025-10-22 22:22:09
TIP | 从0°到360...
RS DL 题目:PreCM: The Padding-Base...
2025-10-02 20:45:31
Anthropic推出最新...
钛媒体App 9月30日消息,Anthropic宣布推出最新AI模...
2025-09-30 08:48:04

热门资讯

《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...
硬核观察 #1245 Open... #1 OpenAI 悄然删除禁止将 ChatGPT 用于 “军事和战争” 的禁令在 1 月 10 日...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
如何理解Apache 2.0许... 提要:Apache 2.0许可证中的专利许可条款使得开源代码可以安全使用,但它经常被误解。Apach...