数据的来源和输出
读入数据:Input
bash中默认的标准输入为:Keyborad,文件描述符:0
输出数据:Output
bash中默认的标准输出为:monitor,文件描述符:1
标准错误输出:monitor,文件描述符:2
I/O重定向
改变输入输出的标准位置
输出重定向:
COMMAND > NEW_POSITION 或者 COMMAND >> NEW_POSITION
>:覆盖重定向,目标文件中的原有内容会被清除
set -C:禁止将内容覆盖输出至已经存在的文件中 (只对当前shell进程有效),如果要强制覆盖可用 | 比如:ls /etc/fstab >| /tmp/fs.txt
2>:覆盖重定向错误输出数据流,比如:
//这里的issueew文件在etc目录中不存在,正常使用>重定向会报错,但是不会输出到/tmp下的文件中,使用2>即可将错误结果输出到指定位置
[root@Centos6-1 ~]# cat /etc/issueew 2> /tmp/isu.txt [root@Centos6-1 ~]# cat /tmp/isu.txt cat: /etc/issueew: No such file or directory
>>:追加重定向,新内容会被追加至目标文件
2>>:追加重定向错误的数据流,类似2>不同的是2>>是追加
标准输出和错误输出各自定向至不同位置
语法:COMMAND > /path/to/file.out 2> /path/to/error.out 表示当命令执行成功了输出至file.out文件中,当出错了输出至error.out中
[root@Centos6-1 ~]# tail -100 /etc/rc.d/rc.sysinit > /tmp/sysinit.out 2> /tmp/sysinit.error [root@Centos6-1 ~]# ls /tmp/sysini* /tmp/sysinit.error /tmp/sysinit.out [root@Centos6-1 ~]# cat /tmp/sysinit.error //此时该文件是空的,因为命令执行是成功的 [root@Centos6-1 ~]#
合并覆盖标准输出和错误输出为同一个数据流进行重定向
[root@Centos6-1 ~]# echo "$PATH" &> /tmp/path.out
合并追加标准输出和错误输出为同一个数据流进行重定向
[root@Centos6-1 ~]# echo "$PATH" &>> /tmp/path2.out