Linux 数据流重定向

标准输出(standard output)指的是命令执行所回传的正确的信息,而标准错误输出(standard error output)可以理解为命令执行失败后,所回传的错误信息。 一般情况下,不管正确还是错误信息数据默认的是输出到屏幕上,所以屏幕上是很混乱的。可以通过数据流重定向将stdout和stderr分别传送到其他的文件或者设备去,而分别传送所用的特殊字符如下所示:
标准输入(stdin):代码为
0,使用<或者<<标准输出(stdout):代码为
1,使用>或者>>标准错误输出(stderr):代码为
2,使用>或者>>
标准输出和标准错误输出
如果仅存在>,则代表默认代码为1。
1>:以覆盖的方法将正确的数据输出到指定的文件或者设备上1>>:以累加的方法将正确的数据输出到指定的文件或者设备上2>:以覆盖的方法将错误的数据输出到指定的文件或者设备上2>>:以累加的方法将错误的数据输出到指定的文件或者设备上
示例1:将stdout和stderr分别存到不同的文件中去。
示例2:将错误的数据丢弃,屏幕上显示正确的数据
/dev/null垃圾黑洞设备
示例3:将正确和错误的数据全部写入一个文件
标准输入
<意味着将原本需要由键盘输入的数据改由文件内容来替代。
示例1:利用cat命令来创建一个文件的简单流程,了解一下什么是键盘输入
示例2:利用stdin替代键盘的输入来创建新文件的流程
理解了<后,再来看<<。<<:代表的是结束输入的意思。举例来讲,我要用cat直接将输入的信息输出到catfile中,且当由键盘输入eof时,本次输入就结束,可以按照如下方式进行:
双向重定向tee
tee命令实现了手动跟踪命令的输出内容,同时又将输出的内容写入文件,确保之后可以用来参考。 例如:
总结,tee可以让standard output转存一份到文件内并将同样的数据继续送到屏幕上去处理显示。这样,除了可以让我们同时分析一份数据并记录下来之外,还可以作为处理一份数据的中间暂存盘记录只用。
另:tee在很多认证考试中有考察。
版权声明: 本文为 InfoQ 作者【王坤祥】的原创文章。
原文链接:【http://xie.infoq.cn/article/c4215cfdae4ca1c2dbbf5f606】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。











评论 (1 条评论)