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

简介

本文介绍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命令用于转换或删除文件中的字符。

执行结果

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

<<

例1:展示在屏幕上

目标

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

命令

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

执行结果

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

例2:转换后输出到文件

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

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

输出重定向

>

>会覆盖原文件内容。

示例

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持恩蓝小号。

原创文章,作者:DHQPG,如若转载,请注明出处:http://www.wangzhanshi.com/n/19261.html

(0)
DHQPG的头像DHQPG
上一篇 2025年2月24日 07:37:39
下一篇 2025年2月24日 07:37:41

相关推荐

发表回复

登录后才能评论