42
如何将命令的输出保存到Linux终端中的文件

当您在 Linux 终端中运行命令或脚本时,它会在屏幕上打印输出以供您立即查看。如果你想将其保存到文件中怎么办?

有时您需要将输出保存到文件中以供将来参考。现在,您当然可以在 Linux 终端中进行复制和粘贴,但还有更好的方法可以在 Linux 命令行中保存 shell 脚本或命令的输出。让我给你展示一下。

方法一:在Linux中使用重定向将命令输出保存到文件中

为此,您可以在 Linux 中使用重定向。使用重定向运算符,它不会在屏幕上显示输出,而是转到提供的文件。> 将命令输出重定向到一个文件,替换该文件上的任何现有内容。>> 重定向将命令输出添加到文件现有内容(如果有)的末尾。使用 STDOUT 重定向运算符 > 将输出重定向到文件,如下所示:

 

command > file.txt


 如果 file.txt 不存在,则会自动创建。如果对同一文件再次使用 > 重定向,文件内容将被新输出替换。

下面的例子更好地说明了这一点。它首先保存 ls -l 命令的输出。然后,它用 ls *.c 命令的输出替换文件的内容。

1d58d72da5e4b8a7b849f79b5270e72d_redirecting_command_output_to_file_in_linux.png

                                                      将命令输出重定向到文件

如果您不想在保存脚本或命令的输出时丢失现有文件的内容,请在附加模式下使用 >> 进行重定向操作。


command >> file.txt

这个例子更好地说明了这一点:

2e5eccfdfb6b518869124663eca08217_redirecting_command_output_to_file.png

                                                           以附加模式将命令输出重定向到文件

即使在这里,如果文件不存在,也会自动创建。

额外提示:将 Linux 命令输出以及错误保存到文件中

如果您的 Linux 命令返回错误,则不会将其保存在文件中。您可以使用 2>&1 将命令输出和命令错误保存在同一文件中,如下所示:

command > file.txt 2>&1
基本上,0 代表标准输入,1 代表标准输出,2 代表标准错误。

此处,您将 (>) 标准错误 (2) 重定向到与标准输出 (1) 相同的地址 (&)。


方法 2:使用 tee 命令显示输出并将其保存到文件中
顺便说一句,您是否注意到,当您将命令输出发送到文件时,您在显示屏上再也看不到它了?Linux 中的 tee 命令为你解决了这个问题。
就像向两个方向发送水流的 T 形管一样,tee 命令将输出发送到显示器以及文件(或作为另一个命令的输入)。你可以这样使用它:
command | tee file.txt
同样,如果该文件尚不存在,则会自动创建该文件。您还可以通过以下方式在附加模式下使用 tee 命令和选项 -a:

command | tee -a file.txt
让我用一些易于理解的示例来演示:



我在示例中使用了简单的 Linux 命令。但请放心;您也可以使用这些方法来保存 bash 脚本的输出。
注意:将命令输出保存到文件时避免管道陷阱


这是因为管道将一个命令的输出重定向到另一命令的输入。在这种情况下,您可以在它等待命令时为其指定一个文件名。
如果您是 Linux 命令行新手,我希望这个快速教程可以增加您的 Linux 知识。I/O 重定向是一个应该了解的基本概念。


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!