![如何将先前的输出从 bash 终端复制到文件](https://linux22.com/image/1254686/%E5%A6%82%E4%BD%95%E5%B0%86%E5%85%88%E5%89%8D%E7%9A%84%E8%BE%93%E5%87%BA%E4%BB%8E%20bash%20%E7%BB%88%E7%AB%AF%E5%A4%8D%E5%88%B6%E5%88%B0%E6%96%87%E4%BB%B6.png)
我知道如何将终端的输出重定向到文件。例如,如果我想列出 ~/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