linux程序输入、输出(I/O)——重定向

本文介绍了Linux程序的三种I/O类型:标准输入、标准输出和标准错误输出,并详细阐述了如何通过重定向操作符号(如>`>`, `>>`, `2>`, `2>>`, `&>`, `&>>`)来改变这些输出的默认位置,包括覆盖和追加文件内容的用法。同时,给出了输入重定向的一个示例。" 135194511,10220647,RK3588平台Linux内存管理:伙伴系统深度解析,"['嵌入式开发', 'Linux内核', '内存管理']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux给程序提供三种输入、输出(I/0)类型:
标准输入(STDIN) -0(数字表示)  默认接受来自键盘的输入
标准输出(STDOUT)-1(数字表示)  默认输出到终端窗口
标准错误输出(STDERR)-2(数字表示)  默认输出到终端窗口

重定向:即为改变默认输入和输出的默认位置

在Linux中,可以使用不同的操作符号将输入和输出进行重定向 :
1. 符号 > 把标准输出(STDOUT)重定向到文件,但会覆盖文件原来内容
2. 符号 >> 在原有标准输出(STDOUT)基础上,会在重定向文件尾追加内容
3. 符号 2> 把标准错误输出(STDERR)输出重定向到文件,但会覆盖文件原来内容
4. 符号 2>> 把标准错误输出(STDERR)输出重定向到文件,会在重定向文件尾追加内容
5. 符号 &> 把所有输出重定向到文件,但会覆盖重定向文件内容
6. 符号 &>> 将所有输出进行重定向,会在重定向文件尾进行追加

例:

 前提:在目录/root/test/下创建两个文件testa和testb
      [root@localhost ~]# cd /root/test/
      [root@localhost test]# ll
      total 0
      -rw-r--r--. 1 root root 0 Jul 27 01:13 testa
      -rw-r--r--. 1 root root 0 Jul 27 01:14 testb
      [root@localhost test]# cat testa
      a
      [root@localhost test]# cat testb
      b
      [root@localhost test]# 
     1.把文件testa标准输出重定向到testb上,并覆盖testb文件上的内容。
    [root@localhost test]# cat testa > testb
    [root@localhost test]# cat testb
    a
    [root@localhost test]# 
 2.把文件testa标准输出重定向到testb上,在testb文件的基础上追加内容输出内容。
     [root@localhost test]# cat testa >>  testb
     [root@localhost test]# cat testb
     b
     a
    [root@localhost test]# 
 3 .把文件testc(未创建)文件错误输出重定向到testb上,并覆盖之前testb文件上。
 [root@localhost test]# cat  testc  2>  testb
 [root@localhost test]# cat testb
 cat: testc: No such file or directory
 [root@localhost test]# 
 4.把文件testc(未创建)文件错误输出重定向到testb上,testb文件上进行追加内容。
 [root@localhost test]# cat  testc  2>>  testb
[root@localhost test]# cat testb
b
cat: testc: No such file or directory
[root@localhost test]# 
  5.把所有输出重定向到文件,但会覆盖重定向文件内容。
  [root@localhost test]# cat testb
b

[root@localhost test]# vim testb
[root@localhost test]# cat testb
b
[root@localhost test]# cat testc &> testb
[root@localhost test]# cat testb
cat: testc: No such file or directory
[root@localhost test]# 
  6.将所有输出进行重定向,在重定向文件尾进行追加
[root@localhost test]# cat testc &>> testb
[root@localhost test]# cat testb
b
cat: testc: No such file or directory
[root@localhost test]# 

备注:
输入 符号 < 表示输入重定向,下面只列出一个例子。将tr ‘a-z’ ‘A-Z’ 的输出作为/tmp/1/2文件的输入。

```
 [root@localhost /]# tr  'a-z'  'A-Z'  <  /tmp/1/2(只是临时对于/tmp/1/2有效)
AAA
BBB
CCC
DDDDDDD
$$$$#@!^^&&*&
123333333
[root@localhost /]#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值