标签:
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 | COMMAND以stdin作为标准输入,stdout作为标准输出 |
COMMAND < stdin | COMMAND以stdin作为标准输入 |
<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
标签:
原文地址:http://dmwing.blog.51cto.com/11607397/1832490