如何 Save 在 Linux 终端中将命令输出到文件 [Beginner’s Tip]

当您在 Linux 终端中运行命令或脚本时,它会在屏幕上打印输出以供您立即查看。

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

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

你可以 为此在 Linux 中使用重定向. 使用重定向运算符,它不会在屏幕上显示输出,而是转到提供的文件。

  • > 将命令输出重定向到替换文件中任何现有内容的文件。
  • >> 重定向在文件现有内容(如果有)的末尾添加命令输出。

使用 STDOUT 重定向运算符 > 将输出重定向到如下文件:

command > file.txt

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

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

将命令输出重定向到文件

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

command >> file.txt

这个例子更好地展示了它:

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

奖金提示: Save Linux 命令输出以及文件错误

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

命令> file.txt 2>&1

基本上,0 代表标准输入,1 代表标准输出,2 代表标准错误。 在这里,您将 (>) 标准错误 (2) 重定向到与标准输出 (1) 相同的地址 (&)。

方法 2:使用 tee 命令显示输出并将其保存到文件中

顺便说一下,您是否注意到当您将命令输出发送到文件时,您在显示器上看不到它了? 这 Linux 中的 tee 命令 为您解决这个问题。

就像将水流发送到两个方向的三通管一样,三通命令将输出发送到显示器以及文件(或作为另一个命令的输入)。 你可以这样使用它:

command | tee file.txt

同样,如果文件不存在,将自动创建该文件。

您还可以在附加模式下使用 tee 命令和选项 -a 以这种方式:

command | tee -a file.txt

让我用一些易于理解的例子来演示它:

我在示例中使用了简单的 Linux 命令。 但是请放心,您可以使用这些方法来保存输出 bash 脚本也是如此。

注意:在将命令输出保存到文件时避免管道陷阱

您可能熟悉管道重定向。 您可以使用它来组合 Linux 命令,但不能将输出通过管道传输到文件。 会导致找不到 filename 命令的错误:

这是因为管道将一个命令的输出重定向到另一个命令的输入。 在这种情况下,您可以在它等待命令时为其指定一个文件名。

如果您不熟悉 Linux 命令行,我希望这个快速教程可以增加您的 Linux 知识。 输入/输出重定向 是人们应该意识到的一个基本概念。

一如既往,欢迎提出问题和建议。