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

总结

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

相关文章

  • VScode连接远程Linux服务器环境配置图文教程

    VScode连接远程Linux服务器环境配置图文教程

    这篇文章主要介绍了如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详细的图文步骤,需要的朋友可以参考下
    2025-01-01
  • 在Bash脚本中创建和使用数组方法总结

    在Bash脚本中创建和使用数组方法总结

    在本篇文章里小编给大家整理了关于在Bash脚本中创建和使用数组方法和相关知识点,需要的朋友们在学习下。
    2019-03-03
  • Linux中的EXT系列文件系统格式详解

    Linux中的EXT系列文件系统格式详解

    这篇文章主要给大家介绍了关于Linux中EXT系列文件系统格式的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Linux系统具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • Centos7环境安装Python3的方法

    Centos7环境安装Python3的方法

    这篇文章主要介绍了Centos7环境安装Python3的方法,简单描述了CentOS环境下安装Python3的具体步骤、命令与相关注意事项,需要的朋友可以参考下
    2018-03-03
  • Linux CentOS下安装Tomcat9及web项目的部署

    Linux CentOS下安装Tomcat9及web项目的部署

    本文讲解在Linux CentOS下安装Tomcat9,以及Web项目的部署发布过程,通过实例代码相结合的形式给大家介绍的非常的详细,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-07-07
  • 在Ubuntu20.04 LTS中配置Java开发环境

    在Ubuntu20.04 LTS中配置Java开发环境

    这篇文章主要介绍了在Ubuntu20.04 LTS中配置Java开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 详解Centos 7 学习之静态IP设置

    详解Centos 7 学习之静态IP设置

    本篇文章主要介绍了详解Centos 7 学习之静态IP设置,具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01
  • Linux mount挂载和卸载硬盘脚本分享

    Linux mount挂载和卸载硬盘脚本分享

    本文通过脚本给大家分享了linux mount挂载和卸载硬盘的方法,非常不错,具有一定的参考借鉴价值,感兴趣的朋友一起看看吧
    2016-11-11
  • ubuntu系统下禁用utc时间的设置方法

    ubuntu系统下禁用utc时间的设置方法

    这篇文章主要给大家介绍了在ubuntu系统下禁用utc时间的设置方法,需要的朋友可以参考下
    2017-05-05
  • 在Debian系的Linux中编译并安装ixgbe驱动的教程

    在Debian系的Linux中编译并安装ixgbe驱动的教程

    这篇文章主要介绍了在Linux中编译并安装ixgbe驱动的教程,采用bash shell、适用于Debian、Ubuntu等各种基于Debian的Linux系统,需要的朋友可以参考下
    2015-03-03

最新评论