相关知识标准输入默认为键盘,也可以使用文件和管道(pipe |);标准输入默认输出到终端(terminal),但是也可以重定向到文件、管道或后引号;标准错误默认输出到终端,但是也可以重定向到文件中;标准的输入、输出和错误在C中分别表示为STDIN、STDOUT、STDERR,也可以使用0,1,2来表示。/dev/null空设备文件,也称为位桶(bit bucket),它可以看作是一个“黑洞”,等价于一个只写的文件,所有的写入内容都会永远的消失。/dev/zero是一个输入设备,可以使用它来初始化文件(写入字符串0),它实际上产生连续不断的null流,主要用于创建一个指定长度的初始化空文件。
重定向到null设备文件在shell中可能经常能看到>/dev/null 2>&1,分解这个组合为下面的五部分:1:>表示重定向到那里;2: /dev/null表示空设备文件3: 2>表示重定向标准错误STDERR4: &表示等同于的意思,2>&1表示标准错误的输出重定向到等同于标准输出5: 1表示标准输出STDOUT,系统默认输出为1,所以>/dev/null等同于1>/dev/null。
其执行过程为:1>/dev/null:首先将标准输出重定向到空设备文件,也就是不输出任何信息到终端(即不显示任何信息);2>&1:然后标准错误输出重定向到标准输出上,因为之前已经重定向标准输出到空设备文件,此时标准错误也重定向到空设备文件中。# command >file 2>file将产生的标准错误和标准输出送到file中,此时file会打开2次,STDOUT和STDERR会相互覆盖,使得两个管道FD1和FD2同时抢占file的管道。# command >file 2>&1 功能与上面的一样,但是file只打开一次,也使用一个管道FD1。从IO效率上说,前一条命令效率明显比后一条命令效率要低。此外,还有一个非常有用的重定向操作符“-”,示例如下:# (cd /src/dir && tar cf - .) | (cd /dst/dir && tar xvfp -)该命令是把/src/dir目录下所有文件通过压缩后,快速的全部移动到/dst/dir目录中。
下面还有几种不常见的用法:n<&- 表示将n号输入关闭;<&-表示关闭标准输入(键盘);n>&-表示将n号输出关闭;>&-表示将标准输出关闭。注:清除日志文件内容命令# cat /dev/null > /var/log/messages
重定向重定向符号为>,它的使用方法有下面一些:l 1>2 表示把标准输出STDOUT重定向到文件2中;l 1>&2 表示把标准输出STDOUT重定向到标准错误STDERR。l command > log 表示将标准输出重定向到log文件中,标准错误输出到终端上;l command > log 2>1 表示将标准输出重定向到log文件中,标准错误重定向到文件1中;l command >log 2>&1 表示将标准输出重定向到log文件中,www.linuxidc.com把标准错误重定向到标准输出上。l command 2>/dev/null 表示把标准错误信息重定向到空设备文件;l command >/dev/null 表示把标准输出重定向到空设备文件;l command >/dev/null 2>&1 表示把标准错误和标准输出全部重定向到空设备;
Linux内核的红黑树RB_TREE和FreeBSD 8.0里面的AVL_TREE比较Android 2.3源码下载编译全过程(附图及文档)修改版相关资讯 Linux知识
- 时光总是太匆匆!Linux已经诞生23 (08/29/2014 14:12:03)
- Linux虚拟文件系统之文件打开(sys (02/14/2012 11:41:54)
- 2012 年 Linux 峰会时间表 (02/14/2012 06:47:27)
| - 报告称当前 Linux 人才抢手 高薪也 (02/15/2012 06:35:56)
- 解析企业为何选择Linux及其特别之 (02/14/2012 08:17:59)
- Linux禁用字符闪烁的方法 (11/02/2011 10:28:25)
|
本文评论 查看全部评论 (0)