请教linux里的tee命令

白虹李李 2010-05-15 12:47:54
在本地目录下有两个文件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命令的?
...全文
1169 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
pomtch 2011-04-06
  • 打赏
  • 举报
回复
不会吧,我怎么用的时候感觉很正常的呀.
Boover 2010-05-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 itsgoodtobebad 的回复:]
如果这样的话,实验当前目录下没有文件的情况(普通用户,默认不显示隐藏文件),那是否会不产生output.txt?
我实验了还是会产……

我刚才还发现了更奇怪的事情:
ls | tee o.txt
ls | tee output.txt
是不一样的结果。。。
哪位大侠解释下?
[/Quote]
同样发现,不过第一次ls | tee o.txt时,o.txt里什么都没有,而二次ls | tee o.txt时,里面就有o.out终端也显示。
lichang_xi 2010-05-15
  • 打赏
  • 举报
回复
以前我也遇到过类似问题,今天又是获益匪浅啊,感谢!
白虹李李 2010-05-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ronliu 的回复:]
首先运行ls命令的结果不是一下子输出的。
ls查找首先看到a.txt,然后将这个文件通过管道告诉tee,tee创建output.txt,然后ls再看到b.txt输出后继续查找,这个时候又会看到output.txt
[/Quote]

如果这样的话,实验当前目录下没有文件的情况(普通用户,默认不显示隐藏文件),那是否会不产生output.txt?
我实验了还是会产生的啊。
————————————————
我刚才还发现了更奇怪的事情:
ls | tee o.txt
ls | tee output.txt
是不一样的结果。。。
哪位大侠解释下?
steptodream 2010-05-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ronliu 的回复:]

首先运行ls命令的结果不是一下子输出的。
ls查找首先看到a.txt,然后将这个文件通过管道告诉tee,tee创建output.txt,然后ls再看到b.txt输出后继续查找,这个时候又会看到output.txt
[/Quote]
在我这里试验他这个命令
output.txt在第一个
ronliu 2010-05-15
  • 打赏
  • 举报
回复
首先运行ls命令的结果不是一下子输出的。
ls查找首先看到a.txt,然后将这个文件通过管道告诉tee,tee创建output.txt,然后ls再看到b.txt输出后继续查找,这个时候又会看到output.txt
steptodream 2010-05-15
  • 打赏
  • 举报
回复
事实胜于雄辩

19,620

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧