tee 是一个非常有用的命令行工具,用于将命令的输出同时保存到文件和显示在标准输出(通常是终端屏幕)上。它允许你在查看输出的同时将其保存到一个或多个文件中。
command | tee [options] [file...]
常用选项
- -a:追加模式,将输出追加到指定文件而不是覆盖。
- -i:忽略中断信号。
1. 将命令输出保存到文件并显示在终端
ls -l | tee output.txt
这将把 ls -l 命令的输出保存到 output.txt 文件,并同时显示在终端上。
2. 将命令输出追加到文件
ls -l | tee -a output.txt
这将把 ls -l 命令的输出追加到 output.txt 文件,并同时显示在终端上。
- 使用 tee 记录日志
./script.sh 2>&1 | tee script.log
这将运行 script.sh,并将其标准输出和标准错误保存到 script.log 文件,同时显示在终端上。如果把script代替为了你的C语言程序会怎么样?
#!/bin/bash
# 定义时间戳变量
ts=$(date +%Y%m%d%H%M%S)
# 创建目标目录
mkdir -p ../datalogs/$ts
# 运行 exeapp 并将输出保存到日志文件,同时显示在终端
./exeapp | tee ./datalogs/$ts/datalog-$ts.txt