linux文件重定向用什么命令实现,Linux基础:文件描述符与重定向

文件描述符简介:文件描述符在形式上是一个非负整数,每一个文件描述符会与一个打开文件相对应,内核利用文件描述符来访问文件,最广为人知的文件描述符有stdin(标准输入),stdout(标准输出),stderr(标准错误),系统分别事先为它们保留了三个文件描述符0,1,2,我们也可以通过特殊命令给我们的的文件指定文件描述符。

重定向的意思:Linux中,IO重定向是将某一个文件描述符的内容转移到另一个指定的文件描述符中,通常与文件描述符有关。

最常用的我们可以将标准输出的内容重定向到指定文件中。通过重定向操作符(>和>>)可以将输出发送到文件中,而不是终端。>和>>略有差异,尽管两者都可以将文本重定向到文件,但是前者会清空文件,再写入内容,后者会将内容追加到现有的文件的尾部,默认情况下,重定向操作符针对的是标准输出,所以>等同于1>,类似的>>等同与1>>。

1:标准输出和标准错误重定向

2:利用

3:自定义文件描述符

4:tee命令

1:例如echo命令就是将指定的字符串送到标准输出,那么我们就可以结合echo命令将指定字符串发送到指定的文件:

183f0cbb7eb99364051fc56a1ff87765.png

在这里就是将文件描述符stdout(1)的内容通过重定向操作符重定向到了test.txt文件里。

在处理错误时,来自stderr的输出被倾倒入了文件/dev/null中,/dev/null是一个特殊的设备文件,他会丢弃接收到的任何数据。也常被称为黑洞,因为但是进入其中的数据都将一去不复返。同样的我们可以将标准错误输出也重定向到文件中,以供保存。

接下来这个命令会将stderr文本打印到屏幕上,而不是重定向到文本中,因为默认情况下重定向操作符针对的是标准输出,而这里stdout并没有输出,而是stderr输出

25ddb51d2e5d7b6dd7440a8f42b2dd6c.png

在重定向操作符前指定stderr文件描述符,就可以重定向stderr了

29f0ea85b63731ef55a54b86e913b74e.png

2: 从stdin读取输入的命令能以多种方式接收数据:

借助小于符号,我们可以像使用stdin那样读取文件中数据: cmd

还有使用管道时,经常将前一个命令的标准输出重定向成下一个命令的标准输入,cmd1 | cmd2。

3:使用exec命令创建一个用于读取的文件描述符(符号&表明后边的数字是一个文件描述符):

5bb55a7dd5479b9195d0ce7ba1198da9.png

创建一个用于写入的文件描述符:

86666eb227112d14a243fc0a5cf823ef.png

4:标准输出既可以被重定向到文件,也可以通过管道传入其他程序,但不能同时进行,命令tee可以实现这个操作,tee命令从stdin读取,将数据重定向到文件中,然后还将数据重定向到标准输出(stdout)中:cmd | tee file1 file2 | othercmd

例如ls命令列出和cat命令查看文件内容的结果均为标准输出:

297cd6d70eead7a2b650611853bc5a7a.png

-a 指定以追加的方式保存到文件

本知识点需了解exec命令,以及对文件的打开模式,标准输入输出的初步了解。

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值