在bash提示符下运行命令时,它通常将该命令的输出直接打印到终端,可以立即读取它,但是bash还允许你"重定向"命令的输出,将它保存到一个文本文件中,以便稍后查看输出。
选项一:将输出重定向到一个文件
要使用bash重定向,请运行命令,指定>
或>>
操作符,然后提供希望输出重定向到的文件的路径。
>
将命令的输出重定向到文件,替换文件的现有内容>>
将命令的输出重定向到文件,将输出追加到文件的现有内容 下面是一个简单的示例,ls
命令列出当前目录中的文件和文件夹,运行以下命令时,ls
将列出当前目录中的文件和文件夹,但它不会打印到屏幕上,会保存到你指定的文件中。
ls > /path/to/file
指定有效路径,bash将在该位置创建文件。
如果查看文件的内容,会看到ls
命令的输出,例如,cat
命令将文件的内容打印到终端:
cat /path/to/file
记住,>
操作符使用命令的输出替换文件的现有内容,如果要将多个命令的输出保存到单个文件中,可以使用>>
运算符代替,例如,以下命令将系统信息追加到指定的文件中:
uname -a >> /path/to/file
如果文件不存在,bash将创建该文件,
查看文件内容时,你将看到第二个命令的结果被追加到文件末尾:
可以多次重复此过程,以便将输出追加到文件末尾。
选项二:正常打印输出并将它重定向到文件
你可能不喜欢使用>
或>>
操作符重定向输出,因为在终端中看不到命令的输出,这就是tee
命令的作用,tee命令将接收到的输入打印到屏幕上,同时将它保存到文件中。
要通过管道将命令的输出传递给tee
,将其打印到屏幕并将其保存到文件中,请使用以下语法:
command | tee /path/to/file
这将用命令的输出替换文件中的内容,就像>
操作符一样。
要通过管道将命令的输出传递给tee
,打印到屏幕并将它保存到文件,但将它附加到文件的末尾:
command | tee -a /path/to/file
这会将输出附加到文件末尾,就像>>
操作符一样。
相关文章