http://reeddeer.blog.163.com/blog/static/1181710402012324114242650/
文件描述符 文件描述符是程序发送输出和获取输入的地方。当执行一个程序时,运行该程序的进程打开了3个文件描述符,分别是:0(标准输入)、1(标准输出)和2(标准错误输出)。重定向输出符号(>)是1>的简写,它通知shell重定向标准输出。类似地,<是0<的简写,表示重定向标准输入。符号2>将重定向标准错误输出。
示例解释:
$ cat y message y $ cat x cat: x: No such file or directory $ cat x y cat: x: No such file or directory message y.
下面的示例将标准输出和标准错误输出重定向到不同的文件中。符号2>告诉shell将标准错误输出(文件描述符为2)重定向到的具体位置。1>告诉shell将标准输出(文件描述符为1)重定向到的具体位置。可以使用>代替1>。
$ cat x 1> holdl 2> ho1d2 $ cat holdl message y. $ cat ho1d2 cat: x: No such file or directory
复制文件描述符 在下一个示例中,1>将标准输出重定向到文件hold。然后,2>&1声明文件描述符2为文件描述符1的副本。这样做的结果是,标准输出和标准错误输出均被重定向到文件hold中。
$ cat x y 1> hold 2>&1 $ cat hold cat: x: No such file or directory message y
发送错误到标准错误输出 还可以使用1>&2将命令的标准输出重定向到标准错误输出。shell脚本中经常使用这项技术将echo的输出发送到标准错误输出。在下面的脚本中,第1个echo命令的标准输出被重定向到标准错误输出:
echo This is an error message 1>&2
转载于:https://blog.51cto.com/eread/1324987