将错误重定向到unix中的文件

Cod*_*ack 0 unix bash shell

我知道你必须使用......

php lots_of_errors.php > temp.txt 2>&1
Run Code Online (Sandbox Code Playgroud)

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

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

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

lar*_*sks 6

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

2>1
Run Code Online (Sandbox Code Playgroud)

将文件描述符2重定向到文件名"1".安培是shell知道你的意思是"文件描述符1":

2>&1
Run Code Online (Sandbox Code Playgroud)