- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
有时候,想手动跟踪命令的输出内容,同时又想将输出的内容写入文件,确保之后可以用来参考。如果想寻找这相关的工具,那么恭喜你,Linux 已经有了一个叫做 tee 的命令可以帮助你。
本教程中,我们将基于 tee 命令,用一些简单的例子开始讨论。
Linux tee 命令
tee 命令基于标准输入读取数据,标准输出或文件写入数据。感受下这个命令的语法:
tee [OPTION]... [FILE]...
这里是帮助文档的说明:
从标准输入中复制到每一个文件,并输出到标准输出。
让 Q&A(问&答)风格的实例给我们带来更多灵感,深入了解这个命令。
Q1、 如何在 Linux 上使用这个命令?
假设因为某些原因,你正在使用 ping 命令。
ping google.com
如何在 Linux 上使用 tee 命令
如何在 Linux 上使用 tee 命令
然后同时,你想要输出的信息也同时能写入文件。这个时候,tee 命令就有其用武之地了。
ping google.com | tee output.txt
下面的截图展示了这个输出内容不仅被写入 output.txt 文件,也被显示在标准输出中。
tee command 输出 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 写入多个文件
如何让 tee 写入多个文件
Q4. 如何让 tee 命令的输出内容直接作为另一个命令的输入内容?
使用 tee 命令,你不仅可以将输出内容写入文件,还可以把输出内容作为另一个命令的输入内容。比如说,下面的命令不仅会将文件名存入 output.txt 文件中,还会通过 wc 命令让你知道输入到 output.txt 中的文件数目。
ls file* | tee output.txt | wc -l
如何让 tee 命令的输出内容直接作为另一个命令的输入内容
如何让 tee 命令的输出内容直接作为另一个命令的输入内容
Q5. 如何使用 tee 命令提升文件写入权限?
假如你使用 Vim 编辑器 打开文件,并且做了很多更改,然后当你尝试保存修改时,你得到一个报错,让你意识到那是一个 root 所拥有的文件,这意味着你需要使用 sudo 权限保存修改。
如何使用 tee 命令提升文件写入权限
如何使用 tee 命令提升文件写入权限
如此情况下,你可以(在 Vim 内)使用 tee 命令来提高权限。
:w !sudo tee %
上述命令会向你索要 root 密码,然后就能让你保存修改了。
Q6. 如何让 tee 命令忽视中断?
-i 命令行选项使 tee 命令忽视通常由 ctrl+c 组合键发起的中断信号(SIGINT)。
[command] | tee -i [file]
当你想要使用 ctrl+c 中断该命令,同时让 tee 命令优雅的退出,这个选项尤为实用。
售前咨询
售后咨询
备案咨询
二维码
TOP