怎样 Save 使用 Linux 终端在文件中输出命令

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

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

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

将命令输出保存到文件

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

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

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

$ [command] > [/filelocation/filename]

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

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

编辑器中显示的文件内容

将输出附加到现有文件

如果你想将 Linux 命令的输出保存到一个文件中而不弄乱它已经存在的内容,你可以使用以下语法:

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

为了 example,下面的命令会将 ls 命令的结果附加到我已经存在的文件 systeminformation.txt 的末尾。

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

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

结果

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

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

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

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

使用 tee 命令

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

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

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

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

为了 example,下图显示了怎样回显更多文本,然后将其添加到我现有的文件中:

使用 tee 命令的 append 选项

这是文件现在的样子:

使用 tee 命令附加文本

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

怎样 Save 使用 Linux 终端在文件中输出命令