码迷,mamicode.com
首页 > 其他好文 > 详细

基础系列(五):I/O重定向

时间:2016-07-31 22:38:28      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

1、什么是数据流重定向

    在说数据流重定向之前,先来说说数据流的概念吧。数据流分为三种:标准输入(stdin),标准输出(stdout)和标准错误输出(stderr)。简单来说,标准输出指的是命令执行所回传的正确信息,而标准错误输出指的是命令执行失败后,所回传的错误信息,输入重定向是命令执行所调用的文件。这些信息默认是打印在屏幕上的。因为Linux默认输入是键盘,输出是显示器。而IO重定向就是指修改这些默认的一些东西,对原来系统命令的默认执行方式进行改变,可以用重定向来改变这些设置来完成某项工作。

2、数据流重定向的实现

    <1>输入重定向的描述符        

描述符

输出重定向

COMMAND > stdout

stdout作为标准输出(覆盖)

COMMAND >> stdout

stdout作为标准输出(追加)

COMMAND 2> stderr

stderr作为错误输出(覆盖)

COMMAND 2>> stdout 

stderr作为错误输出(追加)

COMMAND &>  

标准输出和输出重定向至新文件(覆盖)

COMMAND &>>

标准输出和输出重定向至新文件(追加)

  <2>输出重定向的描述符

描述符

输入重定向

COMMAND <  stdin > stdout

COMMANDstdin作为标准输入,stdout作为标准输出

COMMAND <  stdin

COMMANDstdin作为标准输入

  <3>标准输出重定向详解

     输入一段信息重定向

[root@centos7 ~]# echo hello > file1
[root@centos7 ~]# cat file1
hello

     再输入一段信息,内容将会被覆盖 

[root@centos7 ~]# echo sky  > file1
[root@centos7 ~]# cat file1
sky

     使用追加输出重定向,内容将不再会被覆盖

[root@centos7 ~]# echo who >> file1
[root@centos7 ~]# cat file1
sky
who
[root@centos7 ~]#

      注:2>、2>>和&>、&>>与上格式相同

<4>标准输入重定向详解 

      用表示命令所要读取的文件

[root@centos7 ~]# echo first line > file2
[root@centos7 ~]# tr -d fir < file2
st lne
[root@centos7 ~]#

      先用<表示要读取的文件,再使用>表示定向的文件

[root@centos7 ~]# echo second line > file3
[root@centos7 ~]# tr -d second < file3 > file4
[root@centos7 ~]# cat file4
 li

注:cat命令的二个特殊用法

    cat << end of content,意思是此处文档

[root@centos7 ~]# cat << EOF
> hello
> welcom to university
> EOF
hello
welcom to university
[root@centos7 ~]#

    cat << end of content > FILE,将输入的内容写入FILE

[root@centos7 ~]# cat << EOF > file5
> i can fly
> EOF
[root@centos7 ~]# cat file5
i can fly
[root@centos7 ~]#


本文出自 “dmwing” 博客,请务必保留此出处http://dmwing.blog.51cto.com/11607397/1832490

基础系列(五):I/O重定向

标签:

原文地址:http://dmwing.blog.51cto.com/11607397/1832490

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!