• Shell中 2>/dev/null


    1、文件描述符
    Linux系统预留可三个文件描述符:0、1和2,他们的意义如下所示:
    0——标准输入(stdin)
    1——标准输出(stdout)
    2——标准错误(stderr)
    标准输出——stdout
    假设:在当前目录下,有且只有一个文件名称为123.txt的文件,这时我们运行这个命令【ls 123.txt】,就会获得一个标准输出stdout的输出结果:123.txt
    错误输出——stderr
    按照上面的假设,我们运行另一条命令【ls abc.txt】,这样我们就会获得一个标准错误stderr的输出结果“ls:无法访问abc.txt:没有那个文件或目录”。
    2、重定向
    重定向的符号有两个:>或>>,两者的区别是:前者会先清空文件,然后再写入内容,后者会将重定向的内容追加到现有文件的尾部。举个例子:
    (a)重定向标准输出stdout
    如上图所示,对比没有添加重定向的操作,这条命令在使用之后并没有将123.txt打印到屏幕。在紧接的cat操作后,可以发现本来应该被输出的内容被记录到stdout.txt中。
    (b)重定向标准输出
    (c)可以将stderr单独定向到一个文件,stdout重定向到另一个文件
    cmd 2> stderr.txt 1>stdout.txt
    (d)也可以将stderr和stdout重定向到同一个文件
    cmd > output.txt 2>&1
    或采用下面的方法,可以少写几个字,能达到同样的效果
    cmd &> output.txt
    cmd >& output.txt     #两个表达式效果一样的
    3、Linux特殊文件
    /dev/null是一个特殊的设备文件,这个文件接收到任何数据都会被丢弃。因此,null这个设备通常也被称为位桶(bit bucket)或黑洞。
    所以,2>/dev/null的意思就是将标准错误stderr删掉。
    原文地址:https://www.zhihu.com/question/53295083
    --------------------- 
    作者:gramdog 
    来源:CSDN 
    原文:https://blog.csdn.net/gramdog/article/details/80374119 
    版权声明:本文为博主原创文章,转载请附上博文链接!
  • 相关阅读:
    Paperfolding HDU
    I
    2020年8月11日第一次组队训练
    2018ICPC南京I. Magic Potion
    【贪心】纪念品分组
    【贪心】删数问题
    【排序】排名
    小X与队列
    B.T.B.F.
    2018浙江理工大学迎新赛——决赛
  • 原文地址:https://www.cnblogs.com/jing1617/p/11132955.html
Copyright © 2020-2023  润新知