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 则追加。