zoukankan      html  css  js  c++  java
  • Linux中的重定向

    重定向符号(漏斗)

    > 标准输出重定向(先把文件的内容清空,然后再放内容)

    [root@localhost ~]# cat /data/test.txt 
    a b c d f
    [root@localhost ~]# echo g h i j k >/data/test.txt 
    [root@localhost ~]# cat /data/test.txt 
    g h i j k
    

    > > 追加重定向(把内容放在文件的最后一行)

    [root@localhost ~]# cat /data/test.txt 
    a b c d f
    [root@localhost ~]# echo g h i j k >>/data/test.txt 
    [root@localhost ~]# cat /data/test.txt 
    a b c d f
    g h i j k
    

    1 标准输出 命令执行正确的内容才会经过漏斗

    1> 命令将执行正确的内容存放文件中

    1>> 命令将执行正确的内容追加到文件中

    2 错误输出

    2> 命令将执行错误的内容存放文件中

    2>> 命令将执行错误的内容存放文件中

    那么问题来了,什么是错误的命令呢,举个例子,命令拼写错误就是典型的命令错误,下面试一试2>>效果

    [root@localhost ~]# ech linux 2>>/data/test.txt 
    [root@localhost ~]# cat /data/test.txt 
    a b c d f
    g h i j k
    -bash: ech: command not found
    

    一般来说,2>与2>>用的比较少,常常用到的是将正确的与错误的一起存放在文件中,这时候就需要用到2>&1,将它加在命令最后,它的作用是将错误的信息放入到对的信息中,这样正确的与错误的信息都可以存放到文件中。

    [root@localhost ~]# echo g h i j k >/data/test.txt 2>&1

    < 输入重定向

    支持它的命令很少,其中之一是xargs,xargs的作用主要有两个,一是读取输入数据重新格式化之后输出(-n多列输出,-d自定义定界符),二是和管道符配合使用,管道符之前的结果作为参数传递给之后的命令。

    [root@localhost ~]# cat /data/test.txt 
    a b c d e
    f g h i j
    [root@localhost ~]# xargs -n6 </data/test.txt 
    a b c d e f
    g h i j
    [root@localhost ~]# xargs -n2 </data/test.txt 
    a b
    c d
    e f
    g h
    i j
    

    << 追加输入重定向

    当我们不需要用vi/vim编辑器进入文件修改,但想要输入多行数据时应该怎么办,这时候就需要用到<<,它的基本使用是这样的cat >>/data/test.txt<<EOF,其中EOF(end of file)为结束标志,当然也可以换成任意你指定的。

    [root@localhost ~]# cat >>/data/test.txt <<EOF
    > k l m n o
    > p q r s t
    > EOF
    [root@localhost ~]# cat /data/test.txt 
    a b c d e
    f g h i j
    k l m n o
    p q r s t
    
    标准输入重定向 <
    xargs -n2 <test.txt
    把文件作为命令的输入
    追加输入重定向 <<
    cat >test.txt<<EOF
    标准输出重定向 > 重定向到文件,如果有内容则清空
    追加输出重定向 >> 追加到文件最后一行
    标准错误输出重定向 2> 标准错误重定向到文件,如果有内容则清空
    追加错误输出重定向 2>> 标准错误追加到文件最后一行
    正确的与错误的重定向 2>&1 标准错误与标准输出同时定向到文件
  • 相关阅读:
    Google Protocol Buffer
    你不知道的JSON的高效率用法
    ContentProvider深度探索
    Messenger实现Android IPC
    AIDL实现Android IPC
    多点触控
    Service通信详解
    并行执行的Service,以媒体转码成新格式为例
    相对完美的后台Service实现播放音乐功能
    用Dalvik指令集写个java类
  • 原文地址:https://www.cnblogs.com/ExBurner/p/9743817.html
Copyright © 2011-2022 走看看