如何在 Linux 上将输出通过管道传输到文件如何在 Linux 上将输出通过管道传输到文件如何在 Linux 上将输出通过管道传输到文件如何在 Linux 上将输出通过管道传输到文件
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 上将输出通过管道传输到文件

在 Linux 系统上使用 Bash shell 时,我们可以将命令的输出发送到其他地方,例如将其传递给另一个命令或文件。这称为 Bash shell 重定向。它在许多不同的场景中都很有用,并且是学习使用 Bash shell 和 Bash 脚本的最基本和最重要的组成部分之一。

在本教程中,我们将向您介绍标准 Bash shell 重定向运算符,它允许我们将标准输出和/或标准错误发送到文件。您还将了解 tee 命令,它可以通过管道将输出传输到文件,同时在终端屏幕上显示输出。让我们深入研究下面的一些示例,看看它是如何工作的。

在本教程中您将学习:

  • 如何将标准输出和/或标准错误重定向到文件

  • 如何使用 tee 命令将输出通过管道传输到文件

如何在 Linux 上将输出通过管道传输到文件 – 命令示例

我们首先介绍如何将标准输出重定向到文件。如果您已经掌握了这些 Bash 基础知识,请随意跳至示例命令。

您通常使用 > 进行重定向,并将输出附加到现有文件,您可以使用 >>。在这里,我们将 echo 命令的输出发送到不同的文件:


$ echo "linuxconfig.org" > new-file.txt
AND
$ echo "linuxconfig.org" >> existing-file.txt

使用这些命令,标准输出将被重定向到文件,并且标准错误将显示在屏幕上。如果您是 Linux 新手,标准输出只是运行命令或脚本时的常见预期输出,标准错误是发生的任何错误消息。

要重定向标准错误,我们可以使用 2> 运算符。这将使标准输出出现在我们的屏幕上,并将所有错误消息发送到文件中。


$ echo "linuxconfig.org" 2> new-file.txt

了解了基础知识后,我们现在将介绍用于将标准输出和/或标准错误重定向到文件的各种命令示例,并了解如何使用 tee 命令将输出通过管道传输到文件。

你知道吗?
将输出重定向到文件时,内置的 Bash 运算符通常就足够了,但偶尔使用带有管道的 tee 命令会产生问题。如果我们需要同时在屏幕上显示输出,这是必要的。

  1. 您可以使用管道和 tee 命令,而不使用 > 进行正常的 Bash 重定向,而无需任何额外选项。您只需要指定要为其写入标准输出的文件的名称。然后,输出将显示在您的终端中,并且还将发送到文件中。

    
    $ echo example output | tee file.txt
    

    “示例输出”文本以及本示例中的 file.txt 均发送到我们的终端。

  2. 您还可以使用 tee 将标准输出同时发送到多个文件。只需在命令中指定每个文件名的路径即可。

    
    $ echo example output | tee file1 file2 file3
    
  3. 如果您还希望将标准错误重定向到文件,而不是仅在终端中显示它,则可以在管道到 tee 之前添加 2>&1 运算符。

    
    $ echo example output 2>&1 | tee file.txt
    
  4. 要附加到文件而不是覆盖它(相当于 Bash >> 运算符),您可以使用 -a 或 --append 带有 tee 的选项。

    
    $ echo example output | tee -a file.txt
    
  5. 如果您想在屏幕上看到标准输出和标准错误,同时将它们附加到同一文件,我们可以使用 -a(附加)选项与 tee 和2>&1 运算符。

    
    $ echo "linuxconfig.org" 2>&1 | tee -a existing-file.txt
    
  6. 要使用 Bash 运算符将标准输出和标准错误重定向到同一文件,请使用以下命令语法。具体来说,将 2>&1 附加到常用命令的末尾。

    
    $ echo "linuxconfig.org" > new-file.txt 2>&1
    
  7. 实现此功能的一种稍微简单的方法是使用 &> 运算符。请注意,这在 Bash 和 zsh 中运行良好,但在其他 shell 中则不然,因此请使用前面的示例以获得与其他系统的最大兼容性。

    
    $ echo "linuxconfig.org" &> new-file.txt
    
  8. 要将标准输出和标准错误附加到已存在的文件,请使用与上面相同的语法,但使用 >> 重定向运算符。

    
    $ echo "linuxconfig.org" >> existing-file.txt 2>&1
    
  9. 要将标准输出重定向到一个文件,并将标准错误重定向到另一文件,请使用以下语法。

    
    $ echo "linuxconfig.org" 2> std-err.txt 1> std-out.txt
    

结束语

在本教程中,我们了解了如何将输出通过管道传输到 Linux 系统上的文件。这可以通过使用内置的 Bash 运算符 > 和 >> 以及 1>、2> 来完成>、2>&1 用于特殊场景。此外,我们可以使用 tee 命令,该命令通过将输出(标准输出和可选的标准错误)传输到文件来提供不同的功能,同时仍然在终端屏幕上显示输出。由于这些方法略有不同,因此您可以使用正确的工具来完成手头的工作。

©2015-2025 艾丽卡 support@alaica.com