美文网首页
1.5 文件描述符和重定向

1.5 文件描述符和重定向

作者: ChiangCMBA | 来源:发表于2017-10-20 17:55 被阅读0次

1.文件描述符是与文件输入、输出相关联的整数。它们用来跟踪已打开的文件。最常见的文件描述符是stdin、stdout、stderr。我们可以将某个文件描述符的内容重定向到另一个文件描述符中。
文件描述符0、1以及2是系统预留的。
0 ——— stdin (标准输入)
1 ——— stdout (标准输出)
2 ——— stderr (标准错误)

2.将输出文本重定向或保存到一个文件中
(1).以下方法通过截取文件的方式,将输出文本存储到文件temp.txt中,即在把echo命令的输出写入文件之前,temp.txt中的内容首先会被清空。
$ echo “This is a sample text 1” > temp.txt
(2).以下方法会将文本追加到目标文件中。
$ echo “This is a sample text 2” >> temp.txt
>和>>并不相同。尽管这两个操作符都可以将文本重定向到文件,但是前者会先清空文件,再写入内容;而后者会将内容追加到现有文件的尾部。
当使用重定向操作符时,重定向的内容不会出现在终端,而是直接被导入文件。重定向操作符默认使用标准输出。如果想使用特定的文件描述符,则必须将描述符置于操作符之前。
>等同于1>;>>等同于1>>。
(3).可以将stderr单独重定向到一个文件,将stdout重定向到另一个文件:
$ cmd 2>err.txt 1>out.txt
还可以利用下面的方法将stderr转换成stdout,使得stderr和stdout都被重定向到同一个文件中:
$ cmd 2>&1 out.txt

或者使用下列方法:
$ cmd &> out.txt
(4).用tee命令实现:一方面将数据重定向到文件,另一方面可以提供一份重定向数据的副本作为后续命令的stdin。
command | tee FILE1 FILE2
$ cat a* | tee out.txt | cat -n
代码说明:tee命令接收到来自stdin的数据。它将stdout的一份副本写入文件out.txt,同时将另一份副本作为后续命令的stdin。命令cat -n将从stdin中接收到的每一行数据加上行号并写入stdout。tee命令只能从stdin中进行读取。
默认情况下,tee命令会将文件覆盖,但它提供了一个-a选项,可以用于追加内容。

#!/bin/bash
#<redirect.sh>

echo "This is a sample text 1" > out.txt

echo "This is a sample text 2" >> out.txt

cmd 2>err.txt 1>out.txt

cmd 2>&1 out.txt

cat out.txt

cmd &> out.txt

cat out.txt

echo "tee命令" | tee err.txt out.txt

相关文章

  • Shell--呈现数据

    文件描述符 用stdout和stderr文件描述符来在多个位置生成输出,重定向相应的文件描述符 临时重定向 在脚本...

  • 基础

    基础 文件描述符和重定向 文件描述符: 0 标准输入 1 标准输出 2 标准错误 重定向 >可以将文本保存到文件中...

  • 1.5 文件描述符和重定向

    1.文件描述符是与文件输入、输出相关联的整数。它们用来跟踪已打开的文件。最常见的文件描述符是stdin、stdou...

  • linux就该这么学-002

    输入输出重定向 标准输入重定向「STDIN, 文件描述符为0」 标准输出重定向「STDOUT, 文件描述符为1」 ...

  • Linux中文件描述符,重定向与标准输入输出

    Linux中文件描述符,重定向与标准输入输出 文件描述符:内核(kernel)利用文件描述符(file descr...

  • Linux 学习笔记(十三):Linux 数据流重定向

    简单的重定向 1、文件描述符 2、将 cat 的连续输出(heredoc方式)重定向到一个文件 注意:不要将管道和...

  • Shell语法(5)--重定向

    重定向 在Linux中,所有输出的目标都是文件,一切皆文件,所以输出的目的地也是一个文件描述符 文件描述符 描述符...

  • 第5次课-Shell脚本语言-第5讲

    内容一:Shell脚本->重定向学习 1、创建文件读写描述符?"<>" 2、关闭文件描述符 3、列举打开的文件描述...

  • 15- Shell脚本基础(三)重定向

    在了解重定向之前,我们先来看看linux 的文件描述符。 linux文件描述符:可以理解为linux跟踪打开文件,...

  • shell文件描述符与重定向

    文件描述符与重定向 1 文件描述1.1 文件描述的输出1.2 实例: 2 自定义描述符2.1 exec 命令创建全...

网友评论

      本文标题:1.5 文件描述符和重定向

      本文链接:https://www.haomeiwen.com/subject/caivuxtx.html