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"
    

  • 相关阅读:
    【JS】【8】拼接字符串
    【JS】【7】获取粘贴板的内容
    【Eclipse】【3】checkstyle插件
    【Eclipse】【2】遇到的问题
    android手机短信监听器,监听到的短信发送到web服务器,完整源码分享
    android手机号归属地查下案例源码
    免费web api接口大全
    android读取远程图片案例
    android向web提交参数的4种方式总结,附带网站案例源码
    csu 10月 月赛 B 题 Scoop water
  • 原文地址:https://www.cnblogs.com/viplanyue/p/12700499.html
Copyright © 2011-2022 走看看