首页 / Linux 命令行入门教程 / 25. 管道 | 与 tee

Linux 命令行入门教程

25. 管道 | 与 tee

本教程共 90 篇 · 第 25 篇

25. 管道 | 与 tee

管道 | 是 Linux 最妙的设计之一。它把前一个命令的输出,直接喂给后一个命令。

比如你想数一数 /etc 下有多少项,不用先存文件:

ls /etc | wc -l

ls /etc 的输出通过管道流进 wc -l(见 §31),算出总行数。中间不产生临时文件。

管道能串很多段。比如找出日志里包含 error 的行,再数有几条:

cat app.log | grep -i error | wc -l

这里 grep 是 §27 要讲的搜索命令。一句管道就完成”过滤 + 计数”。

tee 分叉输出

有时候你既想看结果,又想存成文件。tee 像三通管,一边输出屏幕,一边写文件。

ls -l /etc | tee etc-list.txt

屏幕上照常显示,同时 etc-list.txt 里也留了一份。

想追加而不是覆盖,加 -a

ls -l /etc | tee -a all.txt
Tip

调试长管道时,可以一段段加 | tee step.log,随时把中间结果存下来检查,定位哪一步出问题。

管道的数据在内存里

管道传递数据不落盘,比”写临时文件再读”快得多,也更干净。这也是它流行的原因。

小结:管道 | 把命令串成流水线,tee 让输出同时进屏幕和文件。-a 则追加。