看到别人写了好多, 我就直接填写链接了
哈哈还有他的参考 参考:
最后结论
文件描述符 文件描述符在bash中比较少用,从0开始用户表示进行的数据流,0表示标准输入,1表示标准输出,2表示标注错误输出,其他从3开始。最为常用的场景是将错误消息输出到某个文件,可以加上2>file 到我们的命令中。 我们来看下面一个脚本的例子: command > logfile 2>&1 & >logfile,表示command的标准输出重定向至文件logfile中,2>&1,匹配n>&m,表示文件描述字2(command的标准错误输出)将copy一份采用文件描述字1(即标准输出),由于标准输出已经重定向logfile,这份copy也见将重定向至文件lofgile。我们可以用“abcd > logfile 2>&1 &”来验证这个效果。最后&表示后台运行的方式。这样命令表示在后台运行command,而它的标准输出和错误输出均重定向到logfile文件中。下面可达到类似的效果: command 2>&1 | tee logfile & 错误输出同样适用标准输出,通过pipe方式,见他们作为输入执行tee logfile。tee命令将它的标准输入copy至他的标准标准输出以及参数所带的文件中。和上面的命令不一眼这里即会在stdout 和logfile中同时输出。 其他文件描述字的重定向,例如<&n,通常用于从多个文件中读入或者写出。 <&- ,表示强制关闭标准输入
&- ,表示强制关闭标准输出 1> ,等同于> 0< ,等同于<