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

    重定向即指:将数据传送输出到别的地方,如设备、文件等等。那就涉及到将什么数据传送到什么地方的问题。

    在linux中命令执行的起源和结果说起,看下图:

    Standard input和Standard error都会输出到屏幕上,这样会将屏幕搞的非常混乱,且又是输出内容过多也不易于阅读。甚至有时候的输出内容非常重要需要保存,这是该怎么办??

    答案是:数据重定向,将输出内容导入到别的地方。

    linux中数据重定向的特殊符号:

    • 标准输入:代码为0,使用<或者<<
    • 标准输出:代码为1,使用1>或者1>>,也可以使用默认表示>或者>>
    • 标准错误输出:代码为2,使用2>或者2>>

    >和>>的区别在于,输出内容重导向目的地的方式不一样:

    >:以覆盖目的地原有数据的方式重导向
    >>:以追加的方式重导向

    ls /etc > list
    

    如以上的将列出etc目录下的文件将其写入list文件。

    1. 如果list文件不存在则创建
    2. 清除list文件内容
    3. 将ls的标准输出写入list中

    如果不清空list,则以追加的方式写入,使用>>

    1.只需要正确的数据

    使用/dev/null垃圾桶

    #将find的结果中错误的输出丢弃,只显示正确的结果。避免错误数据的干扰
    find /home -name .bashrc 2> /dev/null
    

    2.既需要正确的输出又需求错误的输出数据

    find /home -name .bashrc > list 2>&1
    find /home -name .bashrc &> list
    

    以上将标准输出和标准错误都写入list

    3.标准输入<和<<的使用

    既然使用<,肯定需要输入的来源。 < file的方式,可以将file的内容作为标准输入。

    cat > back <~/.bashrc
    

    以上同时利用 > 和 <(输入和输出重导向)备份.bashrc文件。

    cat > list
    

    以上命令将会将屏幕输入(标准输入)作为输出重导向文件list,然后使用ctrl+d退出。但是可以如下写法:

    cat > list << "eof"
    

    这样只要屏幕上输入"eof"即可退出。<<代表结束输入。

  • 相关阅读:
    利用Event和MapFile进程共享信息
    基于不可靠数据报的文件传输
    Simple .NET code and memory profiler
    一步一步Asp.Net MVC系列_权限管理之权限控制
    新的起点,新的开始
    找工作的你需要了解和准备的东西
    我的大学读书生涯
    一步一步Asp.Net MVC系列_权限管理数据库与ViewModel篇
    一步一步asp.net_日志导航
    一步一步Asp.Net MVC系列_权限管理总结(附MVC权限管理系统源码)
  • 原文地址:https://www.cnblogs.com/lxyit/p/9418425.html
Copyright © 2011-2022 走看看