美文网首页
数据流向重导

数据流向重导

作者: 大熊的Yowai | 来源:发表于2020-05-03 23:47 被阅读0次

什么是数据流向重导?

一般地说,如果执行一个指令,通常是如下流程:

说明:

  • Standard output:标准输出(STADOUT)
  • Strandard error output:标准错误输出(STADERR)

以上两个内容默认都是输出到屏幕上去。简单的说,标准输出指的是「命令执行所回传的正确的信息」;标准错误输出指的是「命令执行失败后,所传回的错误信息」.

无论正确与否,数据默认都输出到屏幕上,屏幕就会杂乱无章。那么能不能通过某种手段,将两股数据分开呢?答案是可以的,这就是数据流向重导。传送所用的特殊字符规则如下:

  • 标准输入(STADIN):代码为0,使用<<<
  • 标准输出(STADOUT):代码为1,使用>>>
  • 标准错误输出(STADERR):代码为2,使用2>2>>

注意:1>;1>>;2>;2>>中间无空格

STADOUT和STADERR

标准输出数据流向重导

将家目录下的文件信息重导到stad_01.txt文件中

ll / > stad_01.txt

文件建立流程:

  1. 如果stad_01.txt不存在,则系统会自动创建
  2. 当stad_01.txt存在,则会先将其内容清空,然后写入数据

如果不想覆盖stad_01.txt中的内容应该怎么做?答案如下:

ll / >> stad_01.txt

标准错误输出数据流向重导

如果是STADERR的错误数据呢?那就应该通过2>2>>数据流向重导了。

假设现在想要执行find / -name .bashrc命令,会因为权限问题产生一些find: /root: Permission denied之类的错误信息。

此时就需要将STADERR和STADOUT产生的文件分离开:

# 正确信息导入right.txt;错误信息导入wrong.txt。此时屏幕不会显示任何信息
find /Users -name .bashrc > right.txt 2> wrong.txt

/dev/null垃圾桶黑洞装置和特殊写法

如果想忽略到错误信息不显示页不存储呢?这个时候就要用到“黑洞”了。

比如将find /Users -name .bashrc的错误信息导入“黑洞”中,正确信息输出到屏幕:

find /Users -name .bashrc 2> /dev/null

那么如果想将正确信息和错误信息都导向同一个文件呢?这个时候就需要有特殊的写法了:

# 都导入黑洞
find /Users -name .bashrc 1> /dev/null 2>&1

# 都导入result.txt文件中
find /Users -name .bashrc > result.txt 2>&1

# 错误写法,虽然能顺利执行,但是「正确信息」和「错误信息」会无序
find /Users -name .bashrc > result.txt 2>result.txt

说明:&代表「等同」的意思,2>&1代表「2的导向等同1的导向」,如果「1导向到result.txt」中,那么「2也导向到result.txt」中。

STADIN

了解了STADOUT和STADERR后,再来看安STADIN。简单的说STADIN就是「将原本由键盘输入的数据,改成由文件内容取代」。

将/etc/profile的内容输入到stadin.txt中

cat > stadin.txt < /etc/profile

相关文章

  • 数据流向重导

    什么是数据流向重导? 一般地说,如果执行一个指令,通常是如下流程: 说明: Standard output:标准输...

  • Centos6.5 防火墙设置详解

    数据流向 INPUT 数据从其他ip流向当前server OUTPUT 数据从当前ser...

  • vue-数据绑定

    1.单项数据绑定数据只能从data流向页面2.双向数据绑定数据能让data流向页面,还可以冲页面流向data

  • Linux常用指令

    1. 常用命令——数据流、管道数据流:输入流输出流标准的错误输出流重定向:改变数据的流向(一般重定向到文件中) 重...

  • vue中的组件通讯问题

    一、父组件数据流向自组件 二、子组件数据流向父组件 ---完整案例 三、兄弟组件数据流

  • Binder

    AIDL1.流向 in作为定向 tag 表示数据变更只能由调用方流向接收方,out 反之,inout 则为数据可以...

  • C 语言常用输入输出函数总结

    注释说明了数据的流向。

  • EnjoyingSoft之Mule ESB开发教程第五篇:控制消

    本篇主要介绍在Mule ESB中控制消息的流向。控制消息的流向有很多不同的场景,数据的路由,数据的拆分和组合,数据...

  • 第五篇:控制消息的流向-数据路由

    本篇主要介绍在Mule ESB中控制消息的流向。控制消息的流向有很多不同的场景,数据的路由,数据的拆分和组合,数据...

  • 如何定位性能瓶颈

    1、着手在测试前:理清数据流向,数据流程分解 通过绘制数据流向图,以便清晰的列出所有可能出现瓶颈的位置,避免在分析...

网友评论

      本文标题:数据流向重导

      本文链接:https://www.haomeiwen.com/subject/llusghtx.html