我们都知道在 Debian 命令行终端中运行命令如何导致命令执行并在终端本身中打印结果(如果有的话)。 有时,这种立即显示输出是不够的,特别是如果我们想保存输出以供以后使用。 幸运的是,Linux bash 和所有操作系统 bash就此而言,它具备将命令输出打印到指定文件的能力。 在本文中,我们将处理以下两种情况:
- 将命令输出保存到文件
- 在终端中打印输出,然后将其保存到文件中
我们已经在 Debian 11 Bullseye 系统上运行了本文中提到的命令和过程。
将命令输出保存到文件
我们将运行一些示例,其中命令的输出将保存到我们指定的文件名。
为了打开终端,通过 Super/Windows 键访问应用程序启动器搜索,然后搜索终端,如下所示:
创建新文件/替换现有文件
如果要将命令的输出保存到新文件或用命令的输出替换现有文件的内容,请使用以下语法:
$ [command] > [/filelocation/filename]
例如,我将使用 lscpu 命令(显示系统信息),然后将其内容打印到名为 systeminformation.txt 的文件中。 我的系统上尚不存在此文件。
$ lscpu > /home/sana/systeminformation.txt
当我通过文件管理器访问这个文件时,它看起来像这样:
将输出附加到已经存在的文件
如果您想将 Linux 命令的输出保存到文件中而不弄乱其现有内容,可以使用以下语法:
$ [command] >> [/filelocation/filename]
例如,以下命令会将 ls 命令的结果附加到我已经存在的文件 systeminformation.txt 的末尾。
$ ls >> /home/sana/systeminformation.txt
以下文件曾经只包含我的系统信息,现在也包含我的 ls 命令的输出:
在终端上打印输出并将其保存到文件
您可能已经注意到,我们上面提到的命令仅将输出保存到文件中,而不会在终端本身上打印它们。 如果您还想在终端上查看命令的输出,请使用以下语法:
$ [command] | 球座 [/filelocation/filename]
例如,我们想要在下图中回显的文本现在将在终端上回显,并打印到文件 myfile.txt。
$ echo "print this text to my file" | tee /home/sana/myfile.txt
这些是通过命令生成的文件的内容:
如果要将命令的输出附加到已经存在的文件中。 请遵循以下语法:
$ [command] | tee -a [/filelocation/filename]
例如,下图显示了如何回显更多文本,然后将其添加到我已经存在的文件中:
$ echo "here is some more text for printing" | tee -a /home/sana/myfile.txt
这是文件现在的样子:
我们通过本文生成的这些面向输出的文本文件在某些情况下可能比在终端上通常打印输出更有用。 这就是 Debian 的强大之处 bash 是!