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 标准错误与标准输出同时定向到文件
  • 相关阅读:
    ABP AsyncHelper.RunSync 内部实现
    ABP 扩展 OrganizationUnit 数据实体(新增字段)
    ABP 调用 PUT 接口报错 405 Method Not Allowed
    ABP 扩展 Role 数据实体(新增字段)
    C# EntityFramework 自定义数据库表名(一)
    EPPlus.Core(OfficeOpenXml) 获取 Excel 数据集合
    C# 获取文件并将文件按创建/修改时间排序
    C# 计算两个日期之间的月份数(差值)
    C# Split 方法扩展支持双引号
    教你在 C# 代码中写出带高亮关键字的注释
  • 原文地址:https://www.cnblogs.com/ExBurner/p/9743817.html
Copyright © 2011-2022 走看看