【发布时间】:2011-01-20 15:46:07
【问题描述】:
使用>、&>、>& 和2&> 重定向输出有什么区别?
【问题讨论】:
标签: linux shell unix scripting
使用>、&>、>& 和2&> 重定向输出有什么区别?
【问题讨论】:
标签: linux shell unix scripting
> 将 stdout 重定向到文件2>& 将文件句柄“2”(几乎总是stderr)重定向到其他文件句柄(通常写为2>&1,它将stderr 重定向到与stdout 相同的位置)。&> 和 >& 将 stdout 和 stderr 都重定向到一个文件。它通常写成&>file(或>&file)。它的功能与>file 2>&1 相同。2> 将输出到文件句柄 2(通常是 stderr)重定向到文件。【讨论】:
>& 有一个文件 descriptor 的右手参数和一个可选的左手描述符。而&> 有一个右手文件 name 并且没有可选的左手文件。 (两个操作员都可以有一个命令作为左手)。您的声明“2&> 重定向文件句柄 2[...]”是错误的,因为 2 在语法上是命令的一部分
1>(或>)用于标准输出,即命令的输出。 2> 用于stderr,命令的错误输出。
This page 有点罗嗦,但对不同的命令组合都有很好的解释和示例。
【讨论】: