Linux 数据流重定向
2021/9/4 7:09:03
本文主要是介绍Linux 数据流重定向,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
什么是数据流重定向
数据流重定向就是将某个命令执行后应该要出现在屏幕上的数据,给它传输到其他的地方,例如是文件或设备(打印机等)。执行一个命令时,数据传输情况如下:
其中,standard output 和 standard err output 分别代表『标准输出(STDOUT)』和『标准错误输出(STDERR)』
用于重定向的特殊字符
数据流重定向可以将 stdout 和 stderr 分别传送到其他文件或设备,使用的特殊字符如下:
- 标准输入(stdin):代码为 0,使用 < 或 <<
- 标准输出(stdout):代码为 1,使用 > 或 >>
- 标准错误输出(stderr):代码为 2, 使用 2> 或 2>>
其中 < 和 > 是直接覆盖指定的文件,而 << 和 >> 是在文件后追加内容
示例
command > correct.txt 2> error.txt
该语句将 command 命令的标准输出保存到 correct.txt,错误输出保存到 error.txt
/dev/null
/dev/null 是黑洞设备,它可以吃掉任何导向这个设备的信息。
把正确与错误数据写入同一个文件
有两种方法:
# 方法一 command > log.txt 2>&1 # 方法二 command &> log.txt
拓展
1. 为什么有时 grep 无法搜索到前一个命令的输出结果
原因:管道传给 grep 的数据,只有标准输出。如果想要搜索的内容在标准错误输出中,则无法直接搜索到。我们可以将标准错误输出重定向到标准输出中,即可获取结果值
command 2>&1 | grep abc
2. STDOUT 转 STDERR
2>&1
可以将 2>
转到 1>
去,同样地,我们也可以使用 1>&2
echo "error message" 2> /dev/null 1>&2
该命令执行后屏幕上没有输出,说明 "error message" 以及被作为标准错误输出丢到垃圾桶中了。
这篇关于Linux 数据流重定向的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-03-30[译]漫画SELinux概念
- 2024-03-29linux 移动文件
- 2024-03-28linux .so file
- 2024-03-28Linux 磁盘管理
- 2024-03-28Linux学习笔记(十三)磁盘管理(一):磁盘分区
- 2024-03-26linux 创建 文件
- 2024-03-25使用SecureCRT对Linux vim进行颜色设置
- 2024-03-202019-2020-12 20199317 《Linux内核原理与分析》 第十二周作业
- 2024-03-20Linux运维的第二周总结
- 2024-03-13how to count number of directories in linux