• linux系统中输入输出重定向 0<、<、1>、>、2>、1>>、>>、2>>、&>、>&、&>>、2>&1、<<


    1、标准输入重定向0,通常省略;标准输出重定向1,通常省略;标准错误输出重定向2,不能省略

    创建测试数据

    [root@linuxprobe test]# echo 'this is a test!' > a.txt
    [root@linuxprobe test]# ls
    a.txt
    [root@linuxprobe test]# cat a.txt
    this is a test!

    2、标准输入重定向 0<、<  ,两者相同,0和<通常省略

    [root@linuxprobe test]# cat a.txt
    this is a test!
    [root@linuxprobe test]# cat 0< a.txt
    this is a test!
    [root@linuxprobe test]# cat < a.txt
    this is a test!
    [root@linuxprobe test]# tr "a" "x" a.txt  ## tr替换a为x,没有输入重定向则报错
    tr: extra operand ‘a.txt’
    Try 'tr --help' for more information.
    [root@linuxprobe test]# tr "a" "x" 0< a.txt ## 同上
    this is x test!

    3、标准输出重定向  1>、>,清空原始文件,两者相同,1通常省略;1>>、>>表示追加输出

    [root@linuxprobe test]# cat a.txt 1> b.txt ##标准输出 
    [root@linuxprobe test]# cat b.txt
    this is a test!
    [root@linuxprobe test]# cat a.txt > c.txt ##标准输出
    [root@linuxprobe test]# cat c.txt
    this is a test!
    [root@linuxprobe test]# cat a.txt 1>> b.txt ## 标准输出追加
    [root@linuxprobe test]# cat b.txt
    this is a test!
    this is a test!
    [root@linuxprobe test]# cat a.txt >> c.txt ## 标准输出追加
    [root@linuxprobe test]# cat c.txt
    this is a test!
    this is a test!

    3、标准错误输出重定向 2>(清空原始文件)、2>>(追加至原始文件)  

    [root@linuxprobe test]# rm b.txt c.txt
    [root@linuxprobe test]# ls
    a.txt
    [root@linuxprobe test]# ll -h a.txt > b.txt ## 标准输出
    [root@linuxprobe test]# ls
    a.txt  b.txt
    [root@linuxprobe test]# cat b.txt
    -rw-r--r--. 1 root root 16 Oct  4 22:27 a.txt
    [root@linuxprobe test]# ll -h c.txt > d.txt  ## 标准输出,d.txt并不记录错误输出信息
    ls: cannot access c.txt: No such file or directory
    [root@linuxprobe test]# ls
    a.txt  b.txt  d.txt
    [root@linuxprobe test]# cat d.txt  ## d.txt为空
    [root@linuxprobe test]# ll -h c.txt 2> e.txt  ## 标准错误输出重定向
    [root@linuxprobe test]# cat e.txt   ##e.txt记录错误信息
    ls: cannot access c.txt: No such file or directory
    [root@linuxprobe test]# ll -h c.txt 2>> e.txt  ##标准错误输出追加
    [root@linuxprobe test]# cat e.txt
    ls: cannot access c.txt: No such file or directory
    ls: cannot access c.txt: No such file or directory

    4、同时输出标准输出冲定性和标准错误输出重定向 &>、>&、>file 2>&1(以上三者相同,同时记录标准输出和标准错误输出)、&>>、>>file 2>&1(相同,标准输出和标准错误输出追加重定向)

    [root@linuxprobe test]# ls
    a.txt
    [root@linuxprobe test]# cat a.txt b.txt &> c.txt ## 标准输出和标准错误输出重定向
    [root@linuxprobe test]# cat c.txt
    this is a test!
    cat: b.txt: No such file or directory
    [root@linuxprobe test]# cat a.txt b.txt >& d.txt  ## 标准输出和标准错误输出重定向
    [root@linuxprobe test]# cat d.txt
    this is a test!
    cat: b.txt: No such file or directory
    [root@linuxprobe test]# cat a.txt b.txt > e.txt 2>&1  ## 同上
    [root@linuxprobe test]# cat e.txt
    this is a test!
    cat: b.txt: No such file or directory
    [root@linuxprobe test]# cat c.txt
    this is a test!
    cat: b.txt: No such file or directory
    [root@linuxprobe test]# cat a.txt b.txt &>> c.txt  ## 标准输出和标准错误输出追加重定向
    [root@linuxprobe test]# cat c.txt
    this is a test!
    cat: b.txt: No such file or directory
    this is a test!
    cat: b.txt: No such file or directory
    [root@linuxprobe test]# cat d.txt
    this is a test!
    cat: b.txt: No such file or directory
    [root@linuxprobe test]# cat a.txt b.txt >> d.txt 2>&1 ## 同上
    [root@linuxprobe test]# cat d.txt
    this is a test!
    cat: b.txt: No such file or directory
    this is a test!
    cat: b.txt: No such file or directory

    5、<< 表示分界符,从标准输入读入,遇到分界符停止 

    [root@linuxprobe test]# ls
    [root@linuxprobe test]# cat << EOF > a.txt  ## 设定终止符为EOF,遇到EOF则停止,标准输出至a.txt
    > aaaa
    > bbbb
    > cccc
    > EOF
    [root@linuxprobe test]# ls
    a.txt
    [root@linuxprobe test]# cat a.txt
    aaaa
    bbbb
    cccc
  • 相关阅读:
    将jar包安装到本地repository中,---以greenplum.jar举例
    推荐系统学习起步
    代理模式详解:静态代理、JDK动态代理与Cglib动态代理
    MyBatis(四):自定义持久层框架优化
    MyBatis(二):自定义持久层框架思路分析
    MyBatis(一):JDBC使用存在的问题
    PHP编程趣事:能喝几瓶啤酒?
    Linux下的两个经典宏定义
    C/C++中常用的字符串处理函数和内存字符串函数
    设计模式之适配器模式(Adapter Pattern)C++实现
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/13768748.html
Copyright © 2020-2023  润新知