码迷,mamicode.com
首页 > 系统相关 > 详细

Linux 数据流重定向

时间:2020-06-19 16:16:42      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:图片   打开文件   输入   http   数据流重定向   cat   描述   错误输出   进程   

Linux 默认提供了三个特殊设备,用于终端的显示和输出,分别为stdin(标准输入,对应于你在终端的输入),stdout(标准输出,对应于终端的输出),stderr(标准错误输出,对应于终端的输出)。

> 重定向

将 cat 的连续输出(heredoc 方式)重定向到一个文件

技术图片

echo 的内容重定向到一个文件

技术图片

命令的报错内容重定向到一个文件

文件描述符

文件描述符 	设备文件 	说明
0 	/dev/stdin 	标准输入
1 	/dev/stdout 	标准输出
2 	/dev/stderr 	标准错误

文件描述符:文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于 UNIX、Linux 这样的操作系统。

cat no_such_file.txt > error.txt
# 该命令不能达到目的 是因为标准输出和标准错误虽然都指向终端屏幕,实际它们并不一样。要隐藏某些错误或者警告,就需要用到文件描述符。

cat no_such_file.txt &> error.txt
# 用bash提供的特殊的重定向符号"&"将标准错误和标准输出同时重定向到文件,内容存在error.txt文件

cat no_such_file.txt > error.txt 2>&1
# 将标准错误重定向到标准输出,再将标准输出重定向到文件,注意要将重定向到文件写到前面

永久重定向

exec 1>somefile
# 输入都被将被重定向到somefile中

exit
# 退出

完全屏蔽命令的输出

cat file.txt 1>/dev/null 2>&1

Linux 数据流重定向

标签:图片   打开文件   输入   http   数据流重定向   cat   描述   错误输出   进程   

原文地址:https://www.cnblogs.com/linzhenyu/p/13163128.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!