1. 程式人生 > >linux的標準輸出重定向2>&1 1>/dev/null

linux的標準輸出重定向2>&1 1>/dev/null

描述符 表示 進程 int 無底洞 意思 pri 描述 log

Linux有三個標準IO,stdin,stdout,stderr,對應的文件描述符是0,1,2.
2>&1的意思就是將標準錯誤重定向到標準輸入上,
為什麽還要一個&符號,是因為&後面必須要跟文件描述符,
否則2>1的意思就成了將標準錯誤重定向到文件名為1的文件中了。
1>/dev/null的意思是將標準輸出重定向到一個/dev/null的設備文件,null表示一個空設備文件,可以理解為null是個無底洞。
所以2>&1 1>/dev/null,這一句就是將標準錯誤重定向到標準輸入,同時標準輸出又重定向到一個/dev/null的設備文件,也就是stdin/stdout都重定向到一個/dev/null的設備文件。
如下例子:
xxx_process 2>&1 1>/dev/null &,
啟動一個進程名為xxx_process 將其運行的輸出log重定向到/dev/null文件上去,
也就是該進程中printf就打印不了log,同時該進程後臺運行。

linux的標準輸出重定向2>&1 1>/dev/null