對於linux重定向的理解

說到linux重定向,就不能不說到文件描述符。
文件描述符是內核爲每個文件維護的標識符。而標準輸入(默認終端爲鍵盤),標準輸出(默認終端爲屏幕),標準錯誤輸出(默認終端屏幕)標識爲0,1,2。
重定向,實際是一個文件描述符複製的問題。也就是將某個文件描述符複製爲另一個。即,指向另外一個終端。
 
對於 cmd > log 2>&1的理解:
cmd執行的結果,首先將標準輸出重定向到log文件終端,然後將標準錯誤輸出2也重定向到文件描述符1,因爲1,已經重定向到log文件中,所以標準錯誤2也會重定向到log文件中。
 
對於cmd 2 > log 1 >& 2的理解。
cmd的執行結果,首先將標準錯誤輸出重定向到log文件終端,然後將標準輸出1也重定向到標準錯誤輸出2。因爲2已經重定向到log文件,所以兩者都重定向到log文件中。
 
對於cmd 2>&1 > log
cmd的執行結果,首先將標準錯誤輸出重定向到標準輸出的終端----屏幕,然後將標準輸出的文件描述符1,重定向到log文件終端。所以,只有標準輸出會打印到log文件中。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章