zoukankan      html  css  js  c++  java
  • linux基础篇,数据流重定向

    数据流重定向

    很多时候,我们执行一些命令的时候,会在屏幕中得到这些命令的执行结果。这些叫作标准输出。

    但是很多情况下,我们并不想将这些信息直接显示在屏幕上,这个时候,就得用重定向这个功能了

    标准输入

    stdin 代码为0  使用 < 或 <<

    标准输出

    stdout  代码为1  使用 > 或 >>

    标准错误输出

    标准错误输出

    stderr  代码为2  使用 2> 或  2>>

    输出重定向使用方法

    eg:

    1.

    2.实用小功能

    从上面我们能够看出,如果我们需要网某个文件中写入简单数据时,完全可以用数据流重定向的方式来完成

    3.

     find / -name info.txt > log.txt 2> errorlog.txt 
    

    这句代码的意思就是将查找到的文件路径输出到log.txt文件中,将错误信息输出至errorlog.txt中,程序运行结果如下:

    可以看到,信息完美的输出了。那么假如我们需要对错误信息进行过滤,抛弃呢,毕竟它不一定有用。这个时候需要用到我们的垃圾桶黑洞设备了:

    /dev/null

    eg:

    find / -name info.txt > log.txt 2> /dev/null

    这个功能也实现了,但是还有一种情况,那就是如果我们需要将全部信息都输入到一个文件内呢?应该怎么写

    方法一:

    sudo find / -name info.txt > log.txt 2>&1

    方法二:

    sudo find / -name info.txt &> log.txt 
    

    效果截图

    输入重定向使用方法:

    什么是输入重定向?简单来说,就是将标准输出(由键盘输入)改为由文件输入

    eg:

    1.假比如我们需要将log.txt文件的内容复制到logTwo.txt文件中,就可以这样写:

    cat > logTwo.txt < log.txt 

    命令详解:

    利用cat新建文件logTwo.txt,将其标准输入改为文件log.txt输入

    2. <<

    << 是用来干什么的?,是追加重定向输入吗?可是一想,输出追加可以理解,输入追加嘛意思?所以肯定不是追加的意思了

    它其实是终止控制字符设定

    假比如我们需要从键盘输入数据到文件,但是不想用ctrl + d结束,而是想用一个特定字符串结束,比如end,那么就可以这样写:

    cat > data.txt << "end"
    

  • 相关阅读:
    记一次事件:由于资源管理器没有关闭所导致数据库挂起
    脚本恢复控制文件
    数据库恢复至某个时间点
    EXPDP/IMPDP
    导入与导出详解
    ORACLE DIRECTORY目录管理步骤
    Linux and Oracle常用目录详解
    omitting directory何意
    在RAC执行相关操作发生ora-01031:insufficient privileges解决方法
    MySQL8.0安装
  • 原文地址:https://www.cnblogs.com/viplanyue/p/12700499.html
Copyright © 2011-2022 走看看