• linux 重定向


     转一篇重定向的文章,单独的">"  或者 ">>" 我们用的很多了,但是最好是把标准输出和标准错误都保存在文件里,当作日志,单独的一个">"并不能保存标准错误.

    常见用法:

    pwd 1>>norm 2>>error
    PWD 1>>norm 2>>error

    Linux中,脚本语言环境中,即你用make xxx即其他一些普通linux命令,比如ls,find等,不同的数字,代表不同的含义: 

    数字 含义 标准叫法
    0 标准输入 stdin = standard input
    1 标准输出 stdout = standard output
    2 标准错误输出 stderr = standard error




    而系统默认的stdin,stdout,stderr,都是屏幕,所以,当你执行命令,比如make,后,所输出的信息,都是可以在屏幕上看到的。
    所以,想要将对应信息输出到某个文件中,就用对应的数字加上重定向符号'>',实现将这些信息,重新定向到对应的文件中,即可。
    (上面这两句,也是之前太多的人来解释,但是没有说明白的地方。)
    下面以make命令为例来说明,如何把对应的信息,输出到对应的文件中:

    【用法】

    1.想要把make输出的全部信息,输出到某个文件中,最常见的办法就是:
    make xxx > build_output.txt
    此时默认情况是没有改变2=stderr的输出方式,还是屏幕,所以,如果有错误信息,还是可以在屏幕上看到的。
    2.只需要把make输出中的错误(及警告)信息输出到文件中ing,可以用:
    make xxx 2> build_output.txt
    相应地,由于1=stdout没有变,还是屏幕,所以,那些命令执行时候输出的正常信息,还是会输出到屏幕上,你还是可以在屏幕上看到的。
    3.只需要把make输出中的正常(非错误,非警告)的信息输出到文件中,可以用:
    make xxx 1> build_output.txt
    相应地,由于2=stderr没有变,还是屏幕,所以,那些命令执行时候输出的错误信息,还是会输出到屏幕上,你还是可以在屏幕上看到的。
    4.想要把正常输出信息和错误信息输出到分别的文件中,可以用:
    make xxx 1> build_output_normal.txt 2>build_output_error.txt
    即联合使用了1和2,正常信息和错误信息,都输出到对应文件中了。
    5. 所有的信息都输出到同一个文件中:
    make xxx > build_output_all.txt 2>&1
    其中的2>&1表示错误信息输出到&1中,而&1,指的是前面的那个文件:build_output_all.txt 。
    注意:上面所有的1,2等数字,后面紧跟着大于号'>' ,中间不能有空格。



    【引用】
    1. 把GCC的编译信息重定向到一个文件中
    “gcc -c test.c 2> error.txt, Unix下错误输出的ID一般为2”

    2. 我之前写的帖子:【整理】将Linux下编译的warning警告信息输出到文件中

    http://hi.baidu.com/serial_story/blog/item/99b6694e4be68300b2de05ce.html

  • 相关阅读:
    JavaSE--注解
    JavaSE--【JAVA】unicode为12288字符
    Spring--Spring 注入
    Spring--@configuration 和 @Bean
    JavaEE--分布式对象
    JavaSE--jdom解析之bom
    JavaEE--分布式与集群
    JavaEE--调用 WSDL -- httpclient 4.x.x
    JavaSE--RMI初识
    Redis--初识Redis
  • 原文地址:https://www.cnblogs.com/dahu-daqing/p/7209433.html
Copyright © 2020-2023  润新知