zoukankan      html  css  js  c++  java
  • 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)重定向标准错误stderr

    对比没有添加重定向的操作,这条命令在使用之后并没有将123.txt打印到屏幕。在紧接的cat操作后,可以发现本来应该被输出的内容被记录到stderr.txt中。

    以上执行结果如下:

    [root@node1 xiaoa]# ll
    total 0
    -rw-r--r--. 1 root root 0 Jun  5 14:21 123.txt
    [root@node1 xiaoa]# ls 123.txt
    123.txt
    [root@node1 xiaoa]# ls abd.txt
    ls: cannot access abd.txt: No such file or directory
    [root@node1 xiaoa]# ls 123.txt 1> stdout.txt
    [root@node1 xiaoa]# vi stdout.txt
    [root@node1 xiaoa]# ls abc.txt 2> stderr.txt
    [root@node1 xiaoa]# vi stderr.txt
    [root@node1 xiaoa]# ll
    total 8
    -rw-r--r--. 1 root root  0 Jun  5 14:21 123.txt
    -rw-r--r--. 1 root root 53 Jun  5 14:40 stderr.txt
    -rw-r--r--. 1 root root  8 Jun  5 14:39 stdout.txt

    (c)也可以将stderr和stdout重定向到同一个文件

    #ls 123.txt &> output.txt

    3、Linux特殊文件
    /dev/null是一个特殊的设备文件,这个文件接收到任何数据都会被丢弃。因此,null这个设备通常也被称为位桶(bit bucket)或黑洞。
    所以,2>/dev/null的意思就是将标准错误stderr删掉。

    #ls abc.txt 2> /dev/null

  • 相关阅读:
    CSU1784
    HDU 6128 Inverse of sum(数学)
    容斥原理入门
    HDU 6129 Just do it(规律)
    HDU 6140 Hybrid Crystals(zz)
    HDU 6143 Killer Names(排列+容斥,dp)
    zzuli 2177 Contest
    zzuli 2180 GJJ的日常之沉迷数学(逆元)
    除法逆元入门
    乘法逆元数论篇
  • 原文地址:https://www.cnblogs.com/kiko-sunrise/p/10979812.html
Copyright © 2011-2022 走看看