Chinaunix首页 | 论坛 | 博客
  • 博客访问: 276226
  • 博文数量: 64
  • 博客积分: 1758
  • 博客等级: 上尉
  • 技术积分: 543
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-25 11:13
文章分类
文章存档

2011年(54)

2010年(10)

我的朋友

分类: LINUX

2011-05-05 22:17:15

说到linux重定向,就不能不说到文件描述符。
文件描述符是内核为每个文件维护的标识符。而标准输入(默认终端为键盘),标准输出(默认终端为屏幕),标准错误输出(默认终端屏幕)标识为0,1,2。
重定向,实际是一个文件描述符复制的问题。也就是将某个文件描述符复制为另一个。即,指向另外一个终端。
 
对于 cmd > log 2>&1的理解:
cmd执行的结果,首先将标准输出重定向到log文件终端,然后将标准错误输出2也重定向到文件描述符1,因为1,已经重定向到log文件中,所以标准错误2也会重定向到log文件中。
 
对于cmd 2 > log 1 >& 2的理解。
cmd的执行结果,首先将标准错误输出重定向到log文件终端,然后将标准输出1也重定向到标准错误输出2。因为2已经重定向到log文件,所以两者都重定向到log文件中。
 
对于cmd 2>&1 > log
cmd的执行结果,首先将标准错误输出重定向到标准输出的终端----屏幕,然后将标准输出的文件描述符1,重定向到log文件终端。所以,只有标准输出会打印到log文件中。
阅读(1678) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~