linux命令中的>/dev/null黑洞
Linux中的标准输入输出
代码语言:javascript复制0是标准输入,一般是从键盘获得输入
1是标准输出,一般是输出到屏幕上
2是标准错误,有时候屏幕上可以看到,但是重定向的文件中看不到的就是它了
>是重定向符号
>/dev/null
- >/dev/null是一个特殊的设备文件,这个文件接收到任何数据都会被丢弃,俗称“黑洞”
- 2>/dev/null意思是把错误输出到黑洞,也就是说如果你的命令出错的话,错误报告直接就删除了,不会显示在屏幕上
实例
- 如果出现这种有很多报错的情况,可以使用2>/dev/null这个选项将错误信息重定向到黑洞中,只留下正确的信息回显,这个时候我们就能快速而精确的找到我们需要的文件了
2>&1
含义
- 将标准错误输出重定向到标准输出
- 符号>&是一个整体,不可分开
2>&1和2>1的区别
- 符号>&是一个整体
- 2>1的写法实际上是将标准错误输出重定向到名为”1“的文件中去了,没有1这个文件,而不是1所代表的标准输出
- 写成2&>1也是不可以的
为什么2>&1要放在后面
可以将1和2都理解为一个指针
代码语言:javascript复制本来1----->屏幕 (1指向屏幕)
执行>log后, 1----->log (1指向log)
执行2>&1后, 2----->1 (2指向1,而1指向log,因此2也指向了log)
>和>>的区别
- >是重定向文件,覆盖文件原有的内容
- >>是重定向文件时,以追加的方式写入文件