标准输出跟标准错误输出默认打印到屏幕上,前面介绍了可以通过数据流重定向命令将其写入文件或者设备中,那么有没有办法将这些数据既不打印到屏幕也不存储到文件中呢?这就要用到我们接下来要讲到的 /dev/null 文件了,这个 /dev/null 可以处理掉任何重定向到它的信息而不存储,就好像传入的数据被自动清除了一样。下面这个实例,将错误的信息交给 /dev/null 清除,只留下正确的数据显示在屏幕上。
trevor@trevor-PC:~/linux/linux100$ cat /etc/timezone/etc/time Asia/Shanghai cat: /etc/time: 没有那个文件或目录 trevor@trevor-PC:~/linux/linux100$ cat /etc/timezone/etc/time 2> /dev/null Asia/Shanghai trevor@trevor-PC:~/linux/linux100$
那么如何将包括正确数据在内的所有数据清除呢?最简单的办法显然是分别将标准输出跟标准错误输出重定向到 /dev/null 中,其实还有一种跟简洁的特殊用法,即使用重定向符号“&>”。
trevor@trevor-PC:~/linux/linux100$ cat /etc/timezone/etc/time Asia/Shanghai cat: /etc/time: 没有那个文件或目录 trevor@trevor-PC:~/linux/linux100$ cat /etc/timezone/etc/time 2> /dev/null > /dev/null trevor@trevor-PC:~/linux/linux100$ cat /etc/timezone/etc/time &> /dev/null trevor@trevor-PC:~/linux/linux100$
除非注明,文章均为CppLive 编程在线原创,转载请注明出处,谢谢。