当前位置: 技术问答>linux和unix
请教linux里的tee命令
来源: 互联网 发布时间:2016-11-20
本文导语: 在本地目录下有两个文件a.txt和b.txt。 suse9>ls a.txt b.txt 我运行以下命令: suse9>ls | tee output.txt 预期会在屏幕上显示a.txt和b.txt,并且得到一个内容包含了a.txt和b.txt的output.txt文件。 但结果和预想的不一样,屏幕上显...
在本地目录下有两个文件a.txt和b.txt。
suse9>ls
a.txt b.txt
我运行以下命令:
suse9>ls | tee output.txt
预期会在屏幕上显示a.txt和b.txt,并且得到一个内容包含了a.txt和b.txt的output.txt文件。
但结果和预想的不一样,屏幕上显示出三个文件:
a.txt
b.txt
output.txt
在output.txt中也是包含了三个文件。
请教一下各位大侠,为什么会这样呢?
应该是将ls的结果同时发送到标准输出和文件output.txt啊,为什么在output.txt中会包括自己?
难道是先产生这个文件,再进行ls命令的?
suse9>ls
a.txt b.txt
我运行以下命令:
suse9>ls | tee output.txt
预期会在屏幕上显示a.txt和b.txt,并且得到一个内容包含了a.txt和b.txt的output.txt文件。
但结果和预想的不一样,屏幕上显示出三个文件:
a.txt
b.txt
output.txt
在output.txt中也是包含了三个文件。
请教一下各位大侠,为什么会这样呢?
应该是将ls的结果同时发送到标准输出和文件output.txt啊,为什么在output.txt中会包括自己?
难道是先产生这个文件,再进行ls命令的?
|
同样发现,不过第一次ls | tee o.txt时,o.txt里什么都没有,而二次ls | tee o.txt时,里面就有o.out终端也显示。
|
首先运行ls命令的结果不是一下子输出的。
ls查找首先看到a.txt,然后将这个文件通过管道告诉tee,tee创建output.txt,然后ls再看到b.txt输出后继续查找,这个时候又会看到output.txt
ls查找首先看到a.txt,然后将这个文件通过管道告诉tee,tee创建output.txt,然后ls再看到b.txt输出后继续查找,这个时候又会看到output.txt
|
在我这里试验他这个命令
output.txt在第一个