Linux IO重定向

来自linux中国网wiki
跳到导航 跳到搜索

Linux I/O重定向

如果谈到I/O重定向,就涉及到文件标识符(File Descriptor)的概念, 在Linux系统中,系统为每一个打开的文件指定一个文件标识符以便系统对文件进行跟踪,这里有些和C语言编程里的文件句柄相似,文件标识符是一个数字,不同数字代表不同的含义,默认情况下,系统占用了3个,分别是0标准输入(stdin),1标准输出(stdout), 2标准错误(stderr), 另外3-9是保留的标识符,可以把这些标识符指定成标准输入,输出或者错误作为临时连接。通常这样可以解决很多复杂的重定向请求。
标准输入通常指键盘的输入 
标准输出通常指显示器的输出 
标准错误通常也是定向到显示器

以下命令是把标准输出和错误都定向到文件
#ls /dev &>filename
"&"在这里代表标准输出和标准错误,这里无论是正常输出还是错误信息都写到filename中了。

up.sh >/dev/null 2>&1 

exec绑定重定向
格式:

exec 文件描述符[n] <或> file或文件描述符或设备

在上面讲的输入,输出重定向 将输入,输出绑定文件或设备后。只对当前那条指令是有效的。如果需要在绑定之后,接下来的所有命令都支持的话。就需要用exec命令

实例:
 shell]$ exec 6>&1
#将标准输出与fd 6绑定 


参考

技巧:Linux I/O重定向的一些小技巧 https://www.ibm.com/developerworks/cn/linux/l-iotips/

linux shell数据重定向(输入重定向与输出重定向)详细分析 http://www.cnblogs.com/chengmo/archive/2010/10/20/1855805.html