如何将先前的输出从 bash 终端复制到文件

如何将先前的输出从 bash 终端复制到文件

我知道如何将终端的输出重定向到文件。例如,如果我想列出 ~/Documents 中的所有文件并输出到名为 test.txt 的文件,我会这样做:

ls ~/Documents > test.txt

问题是,我可以在执行命令后将输出复制到 test.txt 吗?这意味着我不必事先知道是否要将输出复制到文件。我想做这样的事情:

ls ~/Documents

然后是这个:

<bash command for copying standard output to test.txt>

任何帮助都将不胜感激。

答案1

您可以使用tee,但这并不严格地执行您运行上一个命令之后的操作。

ls ~/Documents | tee test.txt

将会正常将输出写入到您的命令行会话并将其写入 test.txt。

另外,如果您在 GNU 中运行screen,则可以使用命令在回滚缓冲区中移动并进行复制/粘贴。更多信息这个超级用户问题

答案2

你可以在 Emacs 窗口中启动 shell 会话,然后简单地复制和粘贴

(你也可以从 vi 中发出命令并在当前 vi 缓冲区中组合输出),

或者你可以从 xterm 窗口复制并粘贴,

或者你可以使用脚本(1)运行你的 shell 会话,然后编辑会话输出,

或者您可以简单地重执行您的命令。

希望这对你有帮助,Klaus

相关内容