0

我知道你必须使用...

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

...如果您想将错误日志重定向到 temp.txt

  • 1 = 标准输出(程序打印正常输出)
  • 2 = 标准错误(程序打印错误)

&1用来表示它是一个文件描述符而不是一个文件,但你为什么不在 2 前面使用 & 签名&2>&1呢?

4

1 回答 1

6

因为&符号是 shell 如何知道您正在重定向到文件描述符而不是文件的方式。>也就是说,运算符的左侧(LHS)始终是文件描述符,而 RHS 通常是文件名。所以这:

2>1

将文件描述符 2 重定向到名为“1”的文件。& 号是 shell 如何知道您的意思是“文件描述符 1”:

2>&1
于 2012-08-01T17:40:36.137 回答