2012-08-01 47 views
0

我知道你必須使用...重定向錯誤記錄到文件中UNIX

php lots_of_errors.php > temp.txt 2>&1 

...如果你想將錯誤日誌重定向到一個TEMP.TXT

  • 1 =標準輸出(其中程序打印正常輸出)
  • 2 =標準錯誤(如程序打印錯誤)

您使用&1來表明它是一個文件描述符而不是文件,但爲什麼不使用&登錄在2的前面,如&2>&1呢?

+0

雖然重定向錯誤的正確方法是'2> errorfile'。 '> temp.txt'實際上是'1> temp.txt'的縮寫。 – tripleee 2012-08-01 17:52:11

回答

6

因爲&符號是shell如何知道你重定向到文件描述符而不是文件。也就是說,>運營商的左側(LHS)是總是文件描述符,但RHS通常是文件名。所以這個:

2>1 

將文件描述符2重定向到filenamed「1」。 amperand是shell如何知道你的意思是「文件描述符1」:

2>&1 
+0

爲什麼不&2會在&2>&1工作?讓它知道它也是一個文件描述符 – CodeCrack 2012-08-01 18:31:00