tee指令,为Linux的一个指令,其主要作用是,从标准输入中获取数据,将其输出到屏幕的,同时将内容也保存到文件中;
汇总tee的一些常见的应用:
1、输出到文件,同时输出到屏幕
备注: 这里tee指令,同Linux指令连用; 同样, 该指令也可以与Python脚本、shell脚本等连用; 【如:python a.py | tee file】
$ ls | tee dic
Applications
CLionProjects
Desktop
Documents
Downloads
Library
Movies
Music
Pictures
Public
PycharmProjects
WebstormProjects
baidu
dic
hashcat
monitor
my_test
python3
同时,产生文件dict, 打开文件『dic』,文件中保存了同样的内容;
2、输出到多个文件
基本用法为:
ls | tee file1 file2
3、追加写入
上述指令, 每次执行,都会覆盖掉文件中原有的内容, 然后写入最新的内容; 有时候,需要实现追加保存; 使用参数『-a 』执行如下指令:
ls | tee -a file1
4、 取消延迟,实时保存到文件
该问题,存在于 tee 同 python指令连用时;
复现场景: 执行Python指令,将产出的结果输出到屏幕,同时保存到文件中;但是,经常遇到这种的问题, 执行了好久, 屏幕上也没有输出,同时文件里面也没有实时保存;
原因解析: python 中,重定向和输出到控制台的内容,会首先先到缓存区暂存, 直到遇到 换行符 『\n』或者 当 缓存存储到一定程度,才会将内容输出到重定向文件或者输出到屏幕上;
解决办法: 执行Python得时候, 加上参数 -u , 即:
python -u test.py | tee file.tx