【Linux】双向重导向命令tee
想个简单的东西,我们知道 > 会将数据流整个传送给文件或装置,因此我们除非去读取该文件或装置, 否则就无法继续利用这个数据流。万一我想要将这个数据流的处理过程中将某段信息存下来,应该怎么做? 利用 tee 就可以~我们可以这样简单的看一下:
tee 会同时将数据流分送到文件与屏幕 (screen);而输出到屏幕的,其实就是 stdout ,可以让下个命令继续处理!
[root@www ~]# tee [-a] file 选项与参数: -a :以累加 (append) 的方式,将数据加入 file 当中! [root@www ~]# last | tee last.list | cut -d " " -f1 # 这个范例可以让我们将 last 的输出存一份到 last.list 文件中; [root@www ~]# ls -l /home | tee ~/homefile | more # 这个范例则是将 ls 的数据存一份到 ~/homefile ,同时屏幕也有输出信息! [root@www ~]# ls -l / | tee -a ~/homefile | more # 要注意! tee 后接的文件会被覆盖,若加上 -a 这个选项则能将信息累加。
tee 可以让 standard output 转存一份到文件内并将同样的数据继续送到屏幕去处理! 这样除了可以让我们同时分析一份数据并记录下来之外,还可以作为处理一份数据的中间缓存盘记录之用! tee 这家伙在很多选择/填充的认证考试中很容易考呢!
参考资料:http://vbird.dic.ksu.edu.tw/linux_basic/0320bash.php#tee