Bash:2>& 1是什么意思?

时间:2014-03-05 23:26:29

标签: bash command-line command

我见过

2>&1

在bash命令结束时。这是什么意思?它是某种输出重定向吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

简短:它会将STDERR上的所有输出重定向到STDOUT

>是一个重定向运算符,它将以最简单的形式将STDOUT上的所有输出重定向到文件中。

test.sh > file

如果您在>前加上一个数字,它会使用此特定文件描述符的输出 - 在您的示例中为2。 1是stdout,2是stderr。

test.sh 2> file.err

将描述符2 = stderr的所有输出重定向到文件。

如果使用特殊符号&1而不是文件名,则输出不会写入新文件,而是写入具有给定数字的文件描述符,在本例中为1。 所以:

test.sh 2>&1

从文件描述符2(stderr)重定向到文件描述符1(stdout)

如果您想要收集所有输出(无论它发生在哪里(stdout或stderr)进行进一步处理,如管道输入另一个程序,这很有用。

答案 1 :(得分:0)

1是标准输出。 2是stderr。

2>&1只是将发送到stderr的所有内容指向stdout。

您将获得有关此内容的更多信息:here