如何将命令输出保存到Bash中的文件(又名Linux和macOS终端)
当我们在bash提示符下运行命令时,通常会将该命令的输出直接打印到终端,以便我们可以立即读取。但是bash还允许我们重定向任何命令的输出,将其保存到文本文件中,以便稍后查看输出。
从Linux和macOS到Windows 10的基于Ubuntu的bash环境,它都可以在bash上的任何操作系统上运行。
方法一:仅将输出重定向到文件
要使用bash重定向,请运行命令,指定>
或者>>
运算符,然后提供要将输出重定向到的文件的路径。
>
将命令的输出重定向到文件,替换文件的现有内容。" >>"将命令的输出重定向到文件,并将输出添加到文件的现有内容。
从技术上讲,这会将标准输出重定向到标准输出,即屏幕输出到文件。
这是一个简单的例子。 ls命令列出当前目录中的文件和文件夹。所以。当我们运行以下命令时,ls
将列出当前目录中的文件和文件夹,但不会将它们打印到屏幕上,而是会将它们保存到我们指定的文件中。
ls > /path/to/file
我们不必指定现有文件的路径。指定任何有效路径,bash将在该位置创建一个文件。
如果查看文件的内容,将看到ls
命令的输出。例如,cat
命令将文件的内容打印到终端:
cat /path/to/file
记住,>
运算符用命令的输出替换文件的现有内容。如果要将多个命令的输出保存到单个文件中,则应使用>>
运算符。例如,以下命令会将系统信息添加到我们指定的文件中:
uname -a >> /path/to/file
如果该文件尚不存在,则bash将创建该文件。否则,bash将保留文件的现有内容,并将输出添加到文件末尾。
当我们查看文件的内容时,我们会看到第二个命令的结果被添加到文件的末尾:
我们可以根据需要重复多次此过程,以将输出追加到文件末尾。
方法二:正常打印输出并将其重定向到文件
我们可能不喜欢使用>
或者>>
运算符重定向输出,因为我们不会在终端中看到命令的输出。这就是tee
命令的作用。 tee命令将接收到的输入打印到屏幕上,并同时将其保存到文件中。
要将命令的输出通过管道传递到" tee",将其打印到屏幕上并将其保存到文件,请使用以下语法:
command | tee /path/to/file
就像>
运算符一样,这将用命令的输出替换文件中的任何内容。
要将命令的输出传递给tee
,将其输出到屏幕上并将其保存到文件中,但将其添加到文件末尾:
command | tee -a /path/to/file
就像>>
运算符一样,这会将输出添加到文件末尾。