一、三种I/O设备

标准输入和输出

程序:指令 +数据

  读取数据:Input

  输出数据:Output

打开的文件都有一个fd:file description(文件描述符)

Linux给程序提供三种I/O设备

  标准输入(STDIN)-0 默认接受来自键盘的输入

  标准输出(StDOUT) -1 默认给输出到终端窗口

  标准错误)(STDRR)-2  默认输出到终端窗口

I/O重定向:改变默认位置

把输出和错误重定向到文件

STDOUT和STDERR可以被重定向到文件

  命令  操作符号  文件名

支持的操作符号包括

  >  把STDOUT重定向到文件

  2>  把STDERR重定向到文件

  &>  把所有输出重定向到文件

>文件内容会被覆盖

  set   -C禁止将内容覆盖已有文件,但可追加

  > | file  强制覆盖

  set  +C允许覆盖

>>原有内容基础上,追加内容

2>覆盖重定向错误输出数据流

2>>追加重定向错误输出数据流

标准输出和错误输出各自定向至不同位置

  COMMAND > /path/to/file.out 2> /path/to/error.out

合并标准输出和错误输出为同一个数据流进行重定向

  &>覆盖重定向

  &>>追加重定向

  COMMAND > /path/to/file.out 2>&1(顺序很重要)

  COMMAND >>/path/to/file.out 2>&1

():合并多个程序的STDOUT

  (cal 2007;cal 2008)> all.txt 

1 [root@centos6 ~]#ls /error /data > log1 2>&1
2 [root@centos6 ~]#ls /error /data 2>&1 > log2
3 ls: cannot access /error: No such file or directory
4 [root@centos6 ~]#ls /error /data &> log3
5 [root@centos6 ~]#ls /error /data 2>log4 >&2
重定向

相关文章: