linux shell 2> /dev/null的解释

那个2>/dev/null是如果你的命令出错的话,错误报告直接就删除了。不会显示在屏幕上,或者是以邮件的形式发给你了。 

[test @test test]# ls -al >  list.txt  
将显示的结果输出到 list.txt 档案中,若该档案以存在则予以取代! 
[test @test test]# ls -al >> list.txt  
将显示的结果累加到 list.txt 档案中,该档案为累加的,旧数据保留! 
[test @test test]# ls -al 1> list.txt 2> list.err  
将显示的数据,正确的输出到 list.txt 错误的数据输出到 list.err 
[test @test test]# ls -al 1> list.txt 2>&1  
将显示的数据,不论正确或错误均输出到 list.txt 当中! 
[test @test test]# ls -al 1> list.txt 2> /dev/null 
将显示的数据,正确的输出到 list.txt 错误的数据则予以丢弃! 
注意!错误与正确档案输出到同一个档案中,则必须以上面的方法来写! 
不能写成其它格式!
这个观念相当的重要,尤其是在 /etc/crontab 当中执行的时候,如果我们已经知道错误的讯息为何,又不想要让错误的讯息一直填满 root 的信箱,就必须以 2> 搭配 /dev/null 这个垃圾桶黑洞装置,来将数据丢弃!这个相当的重要!

这里我们来说明一下命令重导向里面几个常用的符号与装置:
<  :由 < 的右边读入参数档案;
>  :将原本由屏幕输出的正确数据输出到 > 右边的 file ( 文件名称 ) 或 device ( 装置,如 printer )去;
>> :将原本由屏幕输出的正确数据输出到 >> 右边,与 > 不同的是,该档案将不会被覆盖,而新的数据将以『增加的方式』增加到该档案的最后面;
2> :将原本应该由屏幕输出的错误数据输出到 2> 的右边去。
/dev/null :可以说成是黑洞装置!
发布了9 篇原创文章 · 获赞 1 · 访问量 6万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章