如何 Save 使用 Linux 终端在文件中输出命令

我们都知道在 Linux 命令行终端中运行命令如何导致命令执行并在终端本身中打印结果。 有时,这种立即显示输出是不够的,特别是如果我们想保存输出以供以后使用。 幸运的是,Linux bash 和所有操作系统 bash就此而言,它具备将命令输出打印到指定文件的能力。 在本文中,我们将处理以下两个任务:

  • 将命令输出保存到文件
  • 在终端上打印输出并将其保存到文件

本文中提到的命令已经在 Ubuntu 18.04 LTS 系统上执行过。

将命令输出保存到文件

我们将运行一些示例,其中命令的输出将保存在我们指定的文件名中。

创建新文件/替换现有文件

如果要将命令的输出保存到新文件或用命令的输出替换现有文件的内容,请使用以下语法:

$ [command] > [/filelocation/filename]

例如,我将使用 lscpu 命令(显示系统信息),然后将其内容打印到名为 systeminformation.txt 的文件中。 我的系统上尚不存在此文件。

当我通过文件管理器访问这个文件时,它看起来像这样:

编辑器中显示的文件内容

将输出追加到现有文件

如果您想将 Linux 命令的输出保存到文件中而不弄乱其现有内容,可以使用以下语法:

$ [command] >> [/filelocation/filename]

例如,以下命令会将 ls 命令的结果附加到我已经存在的文件 systeminformation.txt 的末尾。

将命令输出重定向到文件并附加内容

以下文件曾经只包含我的系统信息,现在也包含我的 ls 命令的输出:

结果

在终端上打印输出并将其保存到文件

您可能已经注意到,我们上面提到的命令仅将输出保存到文件中,而不会在终端本身上打印它们。 如果您还想在终端上查看命令的输出,请使用以下语法:

$ [command] | tee [/filelocation/filename]

例如,我们想要在下图中回显的文本现在将在终端上回显,并打印到文件 myfile.txt。

使用 tee 命令

这些是通过命令生成的文件的内容:

使用 tee 命令将输出打印到文件中

如果要将命令的输出附加到已经存在的文件中。 请遵循以下语法:

$ [command] | tee -a [/filelocation/filename]

例如,下图显示了如何回显更多文本,然后将其添加到我已经存在的文件中:

使用 tee 命令的 append 选项

这是文件现在的样子:

使用 tee 命令附加文本

我们通过本文生成的这些面向输出的文本文件在某些​​情况下可能比在终端上通常打印输出更有用。 这就是 Ubuntu 的强大之处 bash 是!