美文网首页每天写1000字每天写500字
linux命令行学习(13):重定向输出

linux命令行学习(13):重定向输出

作者: 金石明镜 | 来源:发表于2019-10-10 13:00 被阅读0次

在linux中,一切皆文件。

其中,有三个文件最常用:标准输入(standard input,简称stdin)、标准输出(standard output,简称stdout)和标准错误(standard error,简称stderr)。一般情况下,标准输入链接到键盘,标准输出和标准错误则链接到屏幕。如果我们要链接到其它地方,就要进行重定向。这三个文件中,属于输出的是stdout和stderr。

一、对标准输出进行重定向

当我们执行命令时,通常有输出信息。一般情况下,这些输出,都显示在屏幕上,因为标准输出通常链接到屏幕。有的时候,我们想保存这些结果,就需要输出到文件,也就是重定向到文件。

重定向使用符号>或>>,后面跟文件名。

当使用>时,输出信息覆盖指定文件。

当使用>>时,输出信息追加到指定文件尾部。

例如:

ls -l >out.txt

会把结果输出到out.txt。如果这个文件存在,则覆盖它,否则创建它。

二、对标准错误进行重定向

只对标准输出进行重定向,错误信息还是会显示到屏幕上。如果要把错误信息输出到文件,就要对标准错误进行重定向。

要对标准错误进行重定向,先了解一个概念:文件描述符(file descriptor)。在shell中,标准输入、标准输出和标准错误的文件描述符为0,1,2。我们在重定向符号>和>>前没有写文件描述符时,就认为它是1,既标准输出。要重定向标准错误时,就不能省了,必须写上2。

做一个实验,

ls -l /bin/usr 2>err.txt

其中,目录/bin/usr不存在。这样命令执行的结果就会有错误信息。上面的命令就把这些信息输出到了文件err.txt中。如果不写这个2,错误信息还是显示在屏幕上。

与标准输出的重定向一样,用>会覆盖指定文件,用>>添加到尾部。如果不存在指定文件,则创建。

三、同时重定向标准输出和标准错误到一个文件

有两个 办法,一个是旧版的,一个是新版的。前者要麻烦一些,后者要简单一些。如果能用新版,就用新版的方法。

1 旧版方法

Is -l . /bin/usr > out.txt  2>&1

注意命令中的顺序,必须把标准输出的重定向写在前面。

注意这里执行的命令,要显示两个目录:当前目录和/bin/usr,但/bin/usr并不存在。这样才同时有标准输出和标准错误的信息。

2 新版方法

Is -l .  /bin/usr &> out.txt

只需要写一个重定向符号。

四、分别重定向标准输出和标准错误到不同的文件

用前面的例子,把两个文件都写出来:

Is -l . /bin/usr > out.txt  2>err.txt

这里顺序没有关系,因为都明确地写出了文件名。

五、丢弃输出

如果我们不需要输出,可以把它们重定向到一个特殊文件/dev/null,这样就相当于丢弃了它们,可以认为/dev/null是垃圾桶。例如,下面的命令丢弃了错误输出:

ls -l . /bin/usr 2>/dev/null

相关文章

  • linux命令行学习(13):重定向输出

    在linux中,一切皆文件。 其中,有三个文件最常用:标准输入(standard input,简称stdin)、标...

  • C进阶1:文件操作

    0. 文件输入输出 使用printf()和命令行重定向>实现文件输出;使用scanf()和命令行重定向<实现文件输...

  • 2019-05-21

    Linux常用命令 重定向(redirection)------本文介绍的东西,输出重定向概念、输出重定向的符号、...

  • shell中的重定向

    linux shell下常用输入输出操作符是: 输出重定向 输入重定向

  • 01.C(Linux命令)

    (创建于2017/8/13) system命令(命令行) 文件管理 1)查看文件信息 ls 2)输出重定向>,一般...

  • Shell | 标准输入输出重定向

    一、Linux 标准输入输出 二、标准输入输出重定向 1. 标准输入输出重定向是什么? 2. 标准输入输出重定向的...

  • linux重定向

    linux 重定向 的符号有 > >> < <<> >> 是输出重定向< << 是输入重定向0 用来表于标准输入1...

  • Linux / Unix示例中的输入输出重定向

    Linux / Unix示例中的输入输出重定向 什么是重定向? 重定向是Linux中的一项功能,因此在执行命令时,...

  • Linux 下强大得不得了的 IO 重定向

    在 Linux 下,I/O 重定向可以称为是命令行最酷的特性了。命令的输入可以来自于键盘或者文件,输出可以打印在终...

  • 生信人的Linux14-24

    Liunx Day15:管道和重定向 管道和重定向:> < >> << Linux: >:覆盖输出 注意文件/t...

网友评论

    本文标题:linux命令行学习(13):重定向输出

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