重定向与管道

一、输出重定向:

    一般情况下默认输入是键盘;输出是输出到屏幕上面

    希望执行命令的时候不希望输出在屏幕上面,输出在文件里面去

  

  1、把正确的输出导入到文件里面去  (只能重定向正确的结果,不能重定向错误的结果)

  ①、   >

    如果该文件不存在的话,直接创建一个文件
    如果该文件存在的话,就会把改文件里面的内容覆盖

  ②、  >> 

    如果该文件不存在的话,直接创建一个文件
    如果该文件存在的话,直接在该文件的内容后面追加,不会把改文件覆盖

  

View Code

  注意:该重定向只能重定向正确的结果,不能重定向错误的结果。如果想重定向出的结果像正确的重定向一样导入的话: xxxxxx 2> nn 1>&2  (举例)

扫描二维码关注公众号,回复: 1675706 查看本文章

  2、重定向错误的结果 (只能重定向错误的结果,不能重定向正确的结果)

    ①、   2>

      如果该文件不存在的话,直接创建一个文件
      如果该文件存在的话,就会把改文件里面的内容覆盖

    ②、  2>>    

      如果该文件不存在的话,直接创建一个文件
      如果该文件存在的话,直接在该文件的内容后面追加,不会把改文件覆盖

[root@localhost opt]# mmmmmmmmmmm 2> s
[root@localhost opt]# cat s
bash: mmmmmmmmmmm: command not found...
[root@localhost opt]# xxxxxxxxxxxxx 2> s    
[root@localhost opt]# cat s
bash: xxxxxxxxxxxxx: command not found...
[root@localhost opt]# aaaaaaaaaa 2>> s
[root@localhost opt]# cat s
bash: xxxxxxxxxxxxx: command not found...
bash: aaaaaaaaaa: command not found...
[root@localhost opt]# 

  注意:如果想错误的结果像正确的导入   xxxxxxxxx > mm 2>&1   (举例)  企业常用的方法

[root@localhost opt]# xxxxxx > mm 2>&1
[root@localhost opt]# cat mm
bash: xxxxxx: command not found...
[root@localhost opt]# yyyyy > mm 2>&1
[root@localhost opt]# cat mm 
bash: yyyyy: command not found...
[root@localhost opt]# 

3、不管输出正确与否,都导入。  

    &>    (注意:没有 2&>)

[root@localhost opt]# xxxx &> kk
[root@localhost opt]# cat kk 
bash: xxxx: command not found...
[root@localhost opt]# date &> kk 
[root@localhost opt]# cat kk 
Tue Jun  6 23:59:34 CST 2017
[root@localhost opt]# 

二、输入重定向-------------- < 或 <<

    把hosts文件里面的小谢字母全部转换为大写字母

[root@localhost opt]# cat hosts 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@localhost opt]# tr 'a-z' 'A-Z' < hosts                                                     tr 命令
127.0.0.1   LOCALHOST LOCALHOST.LOCALDOMAIN LOCALHOST4 LOCALHOST4.LOCALDOMAIN4
::1 LOCALHOST LOCALHOST.LOCALDOMAIN LOCALHOST6 LOCALHOST6.LOCALDOMAIN6 [root@localhost opt]# 

三、输入重定向和输出重定向一起使用

  forexample:  cat >xxx << ufo XXXXXXXXX ufo

// 注意:结尾必须要和ufo一致,才能退出(重定向里面还支持变量的引用)

[root@localhost opt]# mm=123456 [root@localhost opt]# cat > files << ufo  (要和下面配对) > 1111111111111 > ssssssssssssss > $mm > Thanks! > ufo [root@localhost opt]# cat files 1111111111111 ssssssssssssss 123456 Thanks! [root@localhost opt]#

总结:

> 或 1>      输出重定向:把前面的输出东西输入到后面的文件中,会清除文件里面原有的内容
>> 或 1>>    追加输出重定向:把前面输出的东西追加到后面的文件尾部,不会清除原文件里面的内容
0< 或 <         输入重定向:输入重定向用于改变命令的输入,后面指定输入内容,前面跟文件名
0<<或 <<     追加输入重定向:后跟字符串,用来表示“输入结束”,也可以Ctrl+d 来结束输入

2>        错误的重定向:把错误的信息输入到后面的文件中,会删除源文件里面的内容
2>>         错误的追加重定向:把错误的信息追加到后面的文件中,不会删除源文件里面的内容

使用说明:
1、箭头的流向介绍数据的流向
2、数字说明:
标准正常输出: 代码为1,使用> 或 >> 。数据流向从左向右
标准输入: 代码为0,使用< 或 << 。数据流向从右向左
标准错误输出: 代码为2,使用2>或 2>>。数据流向从左向右

2>&1 : 标准错误输出和标准正常输出一样,相当于跟屁虫。1放到哪,2就放到哪里。
echo 'oldboy' > a.txt 2>&1   (企业里面常用的用法)

猜你喜欢

转载自www.cnblogs.com/Panda-lk/p/9208139.html
今日推荐