显示程序输出并复制到文件(tee 命令)
Linux tee命令用于读取标准输入的数据,并将其内容输出成文件。
tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。
语法
tee [-ai][--help][--version][文件...]
参数:
- -a或--append 附加到既有文件的后面,而非覆盖它.
- -i或--ignore-interrupts 忽略中断信号。
- --help 在线帮助。
- --version 显示版本信息。
实例
使用指令"tee"将用户输入的数据同时保存到文件"file1"和"file2"中,输入如下命令:
$ tee file1 file2 #在两个文件中复制内容
以上命令执行后,将提示用户输入需要保存到文件的数据,如下所示:
My Linux #提示用户输入数据
My Linux #输出数据,进行输出反馈
此时,可以分别打开文件"file1"和"file2",查看其内容是否均是"My Linux"即可判断指令"tee"是否执行成功。
与管道配合使用的 tee 命令会读取标准输入,然后将程序的输出写入标准输出,并且同时将它复制到所指定文件中。使用 tee 命令来立即查看输出,并且同时存储它以供将来使用。
例如,输入以下命令:
ps -ef | tee program.ps
这会在显示设备上显示 ps -ef 命令的标准输出,同时会将它的副本保存在 program.ps 文件中。如果 program.ps 文件已存在,那么除非指定了 set 内置命令的 noclobber 选项,否则会删除和替换该文件。例如,要查看命令的输出并将该输出保存到现有文件中,请输入以下命令:
ls -l | tee -a program.ls
这会在显示设备上显示 ls -l 的标准输出,并且同时将它的一个副本追加至 program.ls 文件的末尾。系统会显示类似以下内容的信息,并且 program.ls 文件包含相同信息:
-rw-rw-rw- 1 jones staff 2301 Sep 19 08:53 161414
-rw-rw-rw- 1 jones staff 6317 Aug 31 13:17 def.rpt
-rw-rw-rw- 1 jones staff 5550 Sep 10 14:13 try.doc