Linux命令如何输入输出重定向、追加

 更新时间:2024年12月24日 14:13:35   作者:IT利刃出鞘  
Linux中的输入输出重定向和追加是通过文件描述符来控制的,常用的重定向符号包括<、<<、>、>>、2>、2>>和>&,这些符号可以用于覆盖或追加输出到文件,也可以用于合并标准输出和错误输出

简介

本文介绍Linux中的输入输出重定向、追加。

Linux是通过文件描述符来控制输入和输出的,如下:

字段描述文件描述符默认设备
stdin标准输入流0终端(键盘)
stdout标准输出流1终端(显示屏)
stderr标准错误输出流2终端(显示屏)

重定向符号

重定向符号

含义

使用方法

解释

<

输入重定向

command1 < file

command命令操作内容会从file文件中读取,替代了键盘输入

<<

输入重定向,多行录入

command1 << flag

将开始标记flag和结束标记flag之间的内容作为输入

>

输出重定向,覆盖式

command > file

将输出重定向到file

>>

输出重定向,追加式

command >> file

将输出以追加的方式重定向到file

2>

错误输出重定向,覆盖式

command 2> file

将错误输出重定向到file

2>

错误输出重定向,追加式

command 2> file

将错误输出以追加的方式重定向到file

&>

输出与错误输出重定向,覆盖式

command &> file

输出与错误输出重定向到file

&>>

输出与错误输出重定向,追加式

command &>> file

输出与错误输出以追加的方式重定向到file

&合并command > file 2>&1将标准输出写到file,标准错误也写到file。

输入重定向

<

目标

  • 把test文件中的内容定向到tr程序中,将小写字母转换为大写字母。

命令

tr 'a-z' 'A-Z' < file1
  • 重定向符号将file1里的内容放到tr程序文件下的/fd/0里进行相应的处理。
  • tr命令用于转换或删除文件中的字符。

执行结果

<<

例1:展示在屏幕上

目标

  • 把多行录入内容定向到tr程序中,将小写字母转换为大写字母。

命令

tr 'a-z' 'A-Z' <<EOF
  • EOF可以用任意字符替换。

执行结果

例2:转换后输出到文件

输出重定向

>

>会覆盖原文件内容。

示例

1.将正常输出写入文件

./test.sh >log.txt

等价于

./test.sh 1>log.txt

2. 将错误输出写入文件

./test.sh 2>log.txt

3.将所有输出(正常和错误输出)都写入文件

./test.sh &>log.txt

>>

>>会追加到原文件的最后。

1.将正常输出写入文件

./test.sh >>log.txt

等价于

./test.sh 1>>log.txt

2. 将错误输出写入文件

./test.sh 2>>log.txt

3.将所有输出(正常和错误输出)都写入文件

./test.sh &>>log.txt

cmd >/dev/null 2>&1

  • >/dev/null 2>&1 的含义是:不输出任何信息。
  • 其实也就等价于:&>/dev/null

详解

  • >/dev/null:表示标准输出重定向到空设备文件,也就是不输出任何信息。
  • 2>&1:标准错误输出重定向和标准输出合并,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

cmd >> file 2>&1

  • 把尼奥准输出和标准错误一起重定向到 file文件中(追加)。
  • 其实也就等价于:&>>file

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 等保测评:Centos超时退出问题

    等保测评:Centos超时退出问题

    等保测评主机测评中需要查询主机的超时退出配置,具体在Centos中的话,主要有两种方式可以实现超时退出的功能。文中给大家详细介绍,感兴趣的朋友跟随小编一起看看吧
    2019-07-07
  • 手把手教你在腾讯云上搭建hive3.1.2的方法

    手把手教你在腾讯云上搭建hive3.1.2的方法

    这篇文章主要介绍了手把手教你在腾讯云上搭建hive3.1.2的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Linux下Jenkins忘记密码的操作步骤

    Linux下Jenkins忘记密码的操作步骤

    这篇文章主要介绍了Linux下Jenkins忘记密码的操作步骤,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • linux expect 自动登录交换机保存配置的方法

    linux expect 自动登录交换机保存配置的方法

    今天小编就为大家分享一篇linux expect 自动登录交换机保存配置的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Linux如何定时执行任务教程

    Linux如何定时执行任务教程

    Linux crontab是采用定期执行程序的命令,当安装完成操作 系统后,默认便会启动此任务调度命令,crond命令每分钟都会定期检查是否要执行任务的工作,如果要执行的工作便会自动执行该任务。本文主要介绍了定时任务Crontab的使用,需要的可以学习一下
    2023-04-04
  • CentOS7搭建gerrit 代码审查服务方法

    CentOS7搭建gerrit 代码审查服务方法

    下面小编就为大家分享一篇CentOS7搭建gerrit 代码审查服务方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • Linux命令搜索命令whereis与which的区别

    Linux命令搜索命令whereis与which的区别

    这篇文章主要介绍了Linux命令搜索命令whereis与which的区别的相关资料,这里举例说明该如何区别他们之家的用法,需要的朋友可以参考下
    2017-08-08
  • CentOS 7中 Apache Web 服务器安装配置教程

    CentOS 7中 Apache Web 服务器安装配置教程

    这篇文章主要介绍了CentOS 7中 Apache Web 服务器安装配置教程,需要的朋友可以参考下
    2018-04-04
  • linux crontab实例分析

    linux crontab实例分析

    cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务
    2011-03-03
  • 详解Linux进程调度策略

    详解Linux进程调度策略

    这篇文章主要介绍了详解Linux进程调度策略,以及代码实现中重要环节的指点,一起来学习下。
    2017-11-11

最新评论