e7cae2b213362ce9683447288662f704.png

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

将命令输出保存到文件

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

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

将命令输出保存到文件

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

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

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

$ [command] > [/filelocation/filename]

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

8466aa4185aa64c56a00201121b84756.png

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

0ba73b96524547946af823d20d7bbd88.png

将输出追加到现有文件

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

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

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

139ca4e15147b4c7a8acb87611a07907.png

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

6bc987c888b439248b66b08bc3d10a9c.png

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

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

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

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

92c56c5d791a1f856580c15565f45834.png

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

1d772f7147922c24ff760849d88f212d.png

如果要将命令输出附加到现有文件中。请遵循以下语法:

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

例如,下图显示了如何回显更多文本并将其添加到我现有的文件中:

a0a33a0fc28c8739fac9c3b35d7fb11a.png

这是现在文件的样子:

6e4f506b6021b45e2eaab23a475e08e4.png

在某些情况下,我们通过本文生成的这些面向输出的文本文件比在终端上正常打印输出要有用得多。这就是Ubuntu bash的强大功能!

Logo

更多推荐