有时候在linux下,我们既想把内容输出到标准输出又想输出到文件,这时就可以用tee命令。
语法:tee [-ai][--help][--version][文件…]
补充说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。我们可利用tee把管道导入的数据存成文件,甚至一次保存数份文件。
参数:-a 附加到既有文件的后面,而非覆盖它。如果给予tee指令的文件名称已经存在,预设会覆盖该文件的内容。加上此参数后,数据会新增在该文件内容的最后面,而不会删除原先之内容。
-i 忽略中断信号
--help 在线帮助
--version 显示版本信息
范例: 列出文本文件slayers.story的内容,同时复制3份副本,文件名称分别为ss-copy1、ss-copy2、ss-copy3
$ cat slayers.story |tee ss-copy1 ss-copy2 ss-copy3
注意:使用管道时,标准错误输出不会被tee读取。
如果tee后接-表示的文件,这是再向标准输出拷贝一份输出。
如下手段可以让标准错误也被tee读取
ls "*"
2>&1
| tee ls.txt
常用参数
格式:tee
只输出到标准输出,因为没有指定文件。
格式:tee file
输出到标准输出的同时,保存到文件file中。如果文件不存在,则创建;如果已经存在,则覆盖之。
格式:tee -a file
输出到标准输出的同时,追加到文件file中。如果文件不存在,则创建;如果已经存在,就在末尾追加内容,而不是覆盖。
格式:tee -
输出到标准输出两次。(A FILE of `-' causes `tee' to send another copy of input to standard output, but this is typically not that useful as the copies are interleaved.)
格式:tee file1 file2 -
输出到标准输出两次,同时保存到file1和file2中
格式:tee file
输出到标准输出的同时,保存到文件file中。如果文件不存在,则创建;如果已经存在,则覆盖之。
格式:tee -a file
输出到标准输出的同时,追加到文件file中。如果文件不存在,则创建;如果已经存在,就在末尾追加内容,而不是覆盖。
格式:tee -
输出到标准输出两次。(A FILE of `-' causes `tee' to send another copy of input to standard output, but this is typically not that useful as the copies are interleaved.)
格式:tee file1 file2 -
输出到标准输出两次,同时保存到file1和file2中
使用tee命令重复输出字符串
[root@web ~]# echo 12345 | tee - - - -
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345