1、什么是数据流重定向
在说数据流重定向之前,先来说说数据流的概念吧。数据流分为三种:标准输入(stdin),标准输出(stdout)和标准错误输出(stderr)。简单来说,标准输出指的是命令执行所回传的正确信息,而标准错误输出指的是命令执行失败后,所回传的错误信息,输入重定向是命令执行所调用的文件。这些信息默认是打印在屏幕上的。因为Linux默认输入是键盘,输出是显示器。而IO重定向就是指修改这些默认的一些东西,对原来系统命令的默认执行方式进行改变,可以用重定向来改变这些设置来完成某项工作。
2、数据流重定向的实现
<1>输入重定向的描述符
描述符 |
输出重定向 |
COMMAND > stdout |
stdout作为标准输出(覆盖) |
COMMAND >> stdout |
stdout作为标准输出(追加) |
COMMAND 2> stderr |
stderr作为错误输出(覆盖) |
COMMAND 2>> stdout |
stderr作为错误输出(追加) |
COMMAND &> |
标准输出和输出重定向至新文件(覆盖) |
COMMAND &>> |
标准输出和输出重定向至新文件(追加) |
<2>输出重定向的描述符
描述符 |
输入重定向 |
COMMAND < stdin > stdout |
COMMAND以stdin作为标准输入,stdout作为标准输出 |
COMMAND < stdin |
COMMAND以stdin作为标准输入 |
<3>标准输出重定向详解
▲输入一段信息重定向
[[email protected] ~]# echo hello > file1 [r[email protected] ~]# cat file1 hello
▲再输入一段信息,内容将会被覆盖
[[email protected] ~]# echo sky > file1 [[email protected] ~]# cat file1 sky
▲使用追加输出重定向,内容将不再会被覆盖
[[email protected] ~]# echo who >> file1 [[email protected] ~]# cat file1 sky who [[email protected] ~]#
注:2>、2>>和&>、&>>与上格式相同
<4>标准输入重定向详解
用表示命令所要读取的文件
[[email protected] ~]# echo first line > file2 [[email protected] ~]# tr -d fir < file2 st lne [[email protected] ~]#
先用<表示要读取的文件,再使用>表示定向的文件
[[email protected] ~]# echo second line > file3 [[email protected] ~]# tr -d second < file3 > file4 [[email protected] ~]# cat file4 li
注:cat命令的二个特殊用法
▲cat << end of content,意思是此处文档
[[email protected] ~]# cat << EOF > hello > welcom to university > EOF hello welcom to university [[email protected] ~]#
▲cat << end of content > FILE,将输入的内容写入FILE
[[email protected] ~]# cat << EOF > file5 > i can fly > EOF [[email protected] ~]# cat file5 i can fly [[email protected] ~]#
时间: 2024-08-07 18:16:52