当您在终端窗口中运行命令时,命令的输出通常会打印到终端或屏幕上,因此您可以立即阅读。 如果要保存命令,还可以将命令的输出打印到文件中。
如果您尝试诊断问题,将命令的输出保存到文件会很有帮助。 要获得技术支持的帮助,您可能需要在计算机上运行某些命令并将结果发送给支持团队。 这很容易在命令行上使用输出重定向。
今天我们将介绍如何将命令的输出发送到 bash Windows、Mac 和 Linux 上的 shell。
笔记: 我们将在我们的 example但在 bash Linux 上的 shell 和新的 bash Windows 10 中的外壳。
仅将输出重定向到文件
有两个运算符用于将命令的输出重定向到文件而不是屏幕。
这 > 如果文件不存在,则符号创建一个新文件,如果文件已经存在,则覆盖该文件。 这 >> 如果不存在,也会创建一个新文件,但如果它已经存在,它会将文本附加到文件的末尾,而不是覆盖文件。
要将命令的输出重定向到文件,请键入命令,指定 > 或者 >> 运算符,然后提供要将输出重定向到的文件的路径。 为了 example, ls 命令列出当前目录下的文件和文件夹。 运行以下命令时,文件和文件夹列表将写入 ls_output.txt 文件中 终端输出 文件夹。
代替 /路径/到/文件 带有您要使用的文件的完整路径。
ls > /path/to/file
这是我们的命令 example.
ls > /Users/lorikaufman/TerminalOutput/ls_output.txt
要在终端窗口中查看文件的内容,请使用 猫 命令如下面的命令所示。 再次,更换 /路径/到/文件 带有要查看的文件的完整路径。
cat /path/to/file
这 > 每次使用它来重定向输出时,运算符都会替换现有文件的内容。 如果要将多个命令的输出保存到单个文件,请使用 >> 运算符。 如果指定文件已经存在,这会将命令的输出附加到指定文件的末尾。 如果该文件不存在,则会创建一个新文件。
为了 example,我们会将系统信息附加到我们上面创建的文件的末尾。 因此,在以下行中, unname -a 是命令,后跟 >> 重定向运算符。 然后,我们要将输出附加到的文件的完整路径 无名 命令。
这 -一种 中的参数 无名 命令打印所有可用的系统信息。
uname -a >> /Users/lorikaufman/TerminalOutput/ls_output.txt
要在终端窗口中查看带有附加信息的文件,请输入以下命令以及文件的完整路径。
cat /Users/lorikaufman/TerminalOutput/ls_output.txt
根据需要重复此过程多次,以将命令输出附加到文件末尾。
这是另一个 example 发送的输出 ls 命令作为目录树,递归列出子目录( R 参数)和每行一个文件( 1 范围)。
ls -1R > /Users/lorikaufman/TerminalOutput/dir_tree.txt
然后,我们使用 猫 命令,如前所述,在终端窗口中查看文件的内容。
cat /Users/lorikaufman/TerminalOutput/dir_tree.txt
将输出打印到屏幕并将其重定向到文件
这 > 和 >> 操作员不会在屏幕上显示命令的输出。 输出仅发送到文件。
如果要将输出发送到文件并在屏幕上查看,请使用 球座 命令而不是 > 和 >> 运营商。
要使用 球座 命令,您必须通过管道传输正在运行的命令的输出,例如 ls对 球座 命令,使用管道运算符,竖线(|)。 为了 example,以下命令获取 ls 命令并将其输入 球座 命令。 这 球座 然后命令将该输出发送到屏幕和您使用文件的完整路径指定的文件。
ls | tee /Users/lorikaufman/TerminalOutput/ls_output.txt
上面的命令替换文件中的所有内容,如果不存在则创建一个新的,就像 > 操作员。 我们使用了以下 猫 命令在终端窗口中查看我们文件的内容。
cat /Users/lorikaufman/TerminalOutput/ls_output.txt
要使用 球座 命令将输出打印到屏幕并将其附加到文件末尾,请输入以下命令。 在这里,我们使用 unname -a 命令,就像我们对 >> 运算符,但也将输出发送到屏幕。
uname -a | tee -a /Users/lorikaufman/TerminalOutput/ls_output.txt
下面的命令是 球座 递归打印目录树到文件和屏幕的版本,每行一个文件,就像我们对 > 操作员。
ls -1R | tee /Users/lorikaufman/TerminalOutput/dir_tree.txt
然后,我们使用 猫 再次命令以查看文件的内容。
cat /Users/lorikaufman/TerminalOutput/dir_tree.txt
但是等等,还有更多
还有更多方法可以将输出(包括错误)重定向到文件。 您可以阅读有关用于重定向输出的不同运算符和命令 高级 Bash 脚本指南的 I/O 重定向章节.
Mac 用户还应该为我们的 Mac 终端命令备忘单添加书签。