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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章