Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8388
  • 博文数量: 6
  • 博客积分: 171
  • 博客等级: 入伍新兵
  • 技术积分: 75
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-27 16:13
文章分类

全部博文(6)

文章存档

2011年(6)

我的朋友
最近访客

分类: LINUX

2011-02-14 09:13:02

以下哪个命令可以把ls命令的标准输出和标准错合并, 并将合并数据存放到两个单独的文件?

  ls -lR /data > mylist1 > mylist2 2>&1 
  ls -lR /data 2>&1 | tee mylist1 > mylist2 
  ls -lR /data | tee mylist 1 > mylist2 2>&1 

 

答案时第二个。

 

知识点:三通
        标准输入
        标准输出
        重定向
        全部实现,既三通

 

管道符号不能传递标准错误,可是用过2>&1 后,标准错误成标准输出了。

命令执行的顺序是
ls -lR /data 2>&1
然后执行|
然后是 tee mylist1 > mylist2

为什么保存有保存到mylist2是因为使用tee命令后,又有输出,那么>mylist2就是保存的你这个时候的输出的~

>mylist1 2>&1
2>&1 >mylist1
得到的结果是有区别的

是顺序问题。>mylist1 2>&1先执行标准输出到mylist1文件,再执行2定向到文件mylist1

2>&1 >mylist1这个先执行标准错误到标准输出(即终端),再执行标准输出到文件mylist1

就会在屏幕上看到错误,但文件mylist1里没有错误。

阅读(503) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~