zoukankan      html  css  js  c++  java
  • Linux 数据重定向

    名称 描述 代码 表示
    stdin 标准输入 0 < 或 <<
    stdout 标准输出 1 > 或 >>
    stderr 标准错误输出 2 2> 或 2>>

    • 1> - 以覆盖的方式将正确输出输出到指定位置(等同于>)
    • 1>> - 以追加的方式将正确输出输出到指定位置(等同于>>)
    • 2> - 以覆盖的方式将错误输出输出到指定位置
    • 2>> - 以追加的方式将错误输出输出到指定位置
    • &> - 以覆盖的方式将正确输出错误输出同时输出到指定位置
    • &>> - 以追加的方式将正确输出错误输出同时输出到指定位置
    • 2>&1 - 将错误输出正确输出的形式输出到指定位置
    • < - 将文件里的内容取代键盘作为新的输入设备
    • <<EOF - Here document






    例子

    正确输出重定向到文件

    [root@www ~]$ ls /etc > file
    [root@www ~]$ ls /etc/ 1> file
    

    正确输出追加重定向到文件

    [root@www ~]$ ls /etc >> file
    [root@www ~]$ ls /etc/ 1>> file
    

    错误输出重定向到文件

    [root@www ~]$ ls /etC 2> file
    

    错误输出追加重定向到文件

    [root@www ~]$ ls /etC 2>> file
    

    正确输出错误输出重定向到文件

    [root@www ~]$ ls /etc /etC &> file
    [root@www ~]$ ls /etc /etC > file 2>&1
    [root@www ~]$ ls /etc /etC 1> file 2>&1
    

    正确输出错误输出追加重定向到文件

    [root@www ~]$ ls /etc /etC &>> file
    [root@www ~]$ ls /etc /etC >> file 2>&1
    [root@www ~]$ ls /etc /etC 1>> file 2>&1
    

    输入重定向

    [root@www ~]$ cat test
    date
    [root@www ~]$/bin/bash test	
    2019年 02月 07日 星期四 09:14:10 CST
    

    Here document

    [root@www ~]$ cat << EOF >> test
    Hello World.
    EOF
    






    注意

    我们已知cmd >2 2>&1 的意思是,将 stdoutstderr 输出到指定位置,那么是不是可以用 cmd >a 2>a代替?不!虽然cmd >a 2>&1cmd >a 2>a 非常相似,但是这两种是有区别的,前者只会打开文件一次,而后者会打开两次,在第二次打开的时候,stderr 会覆盖 stdout,所以注意,这两种是不一样的。





  • 相关阅读:
    Matching「CEOI2011」
    中位数之中位数「NOIP多校联考 2019」
    积木「CSP-S全国排位赛第一场」
    序列「CSP-S全国排位赛第一场」
    GT考试「HNOI2008」
    动物园「NOI2014」
    Radio Transmission「BOI2009」
    小Z的袜子「国家集训队」
    BZOJ3624: [Apio2008]免费道路
    BZOJ1190: [HNOI2007]梦幻岛宝珠
  • 原文地址:https://www.cnblogs.com/liuhedong/p/10351501.html
Copyright © 2011-2022 走看看