Linux 数据流重定向
1.三种数据流重定向
1)标准输入(stdin):代码为0,使用0<或0<<,其中代码0可以省略
2)标准输出(stdout):代码为1,使用1>或1>>,其中代码1可以省略
3)标准错误输出(stderr):代码为2,使用2>或2>>
2.标准输出(stdout)重定向
我们知道Linux中,cat命令可以将文件内容输出到屏幕。
如下所示:
我们可以使用>将输出重定向到其他文件,如下所示:
可以看到,使用>后,文件内容并没有输出到屏幕,而是输出到了mytxt文件。
>>与>的区别是,>>会把输出添加到文件的末尾,>会清空文件,然后将输出写入该文件。
3.标准输入(stdin)重定向
cat>mytxt,表示需要从键盘输入数据到文件。如下所示:
使用<可以将其他文件内容输入到该文件,如下所示:
使用<<,表示定义输入结束符,
从键盘输入时,输入Ctrl+D,可结束进程。
还可以使用<<自定义结束符,如下所示:
4.标准错误输出(stderr)重定向
与标准输出(stdout)重定向使用相同。
表示重定向的是错误信息。
一般用来将错误信息和正确信息分开。
5.标准输出和标准错误输出写入同一个文件
使用&>可将stdout和stderr输出到同一个文件,如下所示:
6.屏蔽所有输出的方法
有时我们希望将所有的错误信息或正确信息屏蔽掉,
此时,可将输出重定向到设备/dev/null。如下所示:
将正确信息吃掉,此时屏幕输出的只有错误信息了。
7.为什么要用数据流重定向
1)需要将屏幕信息保存下来的时候
2)不希望其他程序干扰到当前程序的屏幕输出
3)执行时一些已知的错误,我们可以用"2>/dev/null"丢掉
4)正确信息和错误信息需要分开输出