對於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文件中。
相關文章
相關標籤/搜索