2013-04-03 89 views

回答

0

在第一種情況,由於輸出被引導到文件log.txt然後stderr的被引導至附連到什麼標準輸出(文件log.txt)。在第二種情況下。標準錯誤指向標準輸出附加到的東西(可能是一個tty),然後stdout被定向到文件log.txt

0

someCommand > log.txt 2>&1 - stdout和stderr都到log.txt

someCommand 2>&1 > log.txt - 標準輸出到log.txt,標準輸出到前標準輸出(屏幕)。

4

重定向是在出現的順序進行:

someCommand > log.txt 2>&1 
  • stdout是文件描述符1 fd(1) == stdout
  • stderr的是文件描述符2 fd(2) == stderr
  • 重定向文件描述符1至log.txt結果fd(1) == log.txt
  • 將文件描述符2重定向到文件描述符1導致fd(2) == fd(1) == log.txt
  • 導致寫入文件描述符1或2的所有內容實際上寫入log.txt。

someCommand 2>&1 > log.txt 
  • stdout是文件描述符1 fd(1) == stdout
  • stderr的是文件描述符2 fd(2) == stderr
  • 重定向文件描述符2文件描述符1所導致fd(2) == fd(1) == stdout
  • 重定向文件描述符1到log.txt結果在fd(1) == log.txt
  • 導致寫入到文件描述符1的一切實際上是寫入log.txt文件寫入到文件描述符2實際寫入
  • ,一切到stdout
相關問題