tee
从标准输入读取数据,同时输出到标准输出和文件,实现一份数据两路输出
语法
command | tee [options] file
参数
| 参数 | 说明 | 示例 | 级别 |
|---|---|---|---|
-a |
追加到文件而不是覆盖 | |
常用 |
-i |
忽略中断信号 | |
常用 |
示例
编译时同时在终端显示并保存到日志
make 2>&1 | tee build.log
用 sudo 权限写入系统文件
echo 'new config' | sudo tee /etc/app.conf
处理数据同时保留备份
cat data.csv | tee backup.csv | awk -F, '{print $1}'追加安装日志
apt install nginx 2>&1 | tee -a install.log
追加 hosts 记录(sudo 重定向的正确写法)
echo '127.0.0.1 myapp.local' | sudo tee -a /etc/hosts
技巧
- sudo echo 'x' > /etc/file 会失败,因为重定向在 sudo 之外;用 echo 'x' | sudo tee /etc/file
- tee 可以同时写多个文件:command | tee file1 file2
- 不想看终端输出时:command | tee file > /dev/null
- 调试管道时插入 tee 可以查看中间数据