将输出回显到文件,同时在控制台中看到它

Szy*_*oda 3 linux terminal command-line

所以我回显了我在终端中运行的程序的输出 command 2>&1 >> /path/toFile.txt

它创建了一些我想要克服的限制:

  1. 它“冻结”并且在终端中没有输出 - 查看实际输出的唯一方法是打开输出文件
  2. 打开输出文件没有给出实时结果。它给出了打开该文件时的结果

如何将输出回显到文件并能够:

a)查看该文件中的实时更改(我假设需要单独的程序)

或者

b) 输出到文件并同时在终端中查看该输出

Ste*_*nie 9

对于 a) 有一个名为“tail”的实用程序,它显示文件的最后几行,并可选择监视文件是否有添加到末尾的新行:

$ tail -f /path/toFile.txt
Run Code Online (Sandbox Code Playgroud)

less 寻呼机也有跟踪变化的能力,按 shift-F 使它进入一个很像 tail -f 的模式,优点是按一次 ctrl-c 会让你回到正常的文件查看模式,所以您可以向后滚动文件或在不关闭文件的情况下搜索文件。

对于 b) 有一个名为 tee 的标准实用程序,专门用于此目的 ( http://www.gnu.org/software/coreutils/manual/coreutils.html#tee-invocation )

您可能需要类似以下内容:

command 2>&1 | tee -a /path/toFile.txt | less
Run Code Online (Sandbox Code Playgroud)

| less在年底显然是可选的,但要注意,如果你有它,收市跌少可能也将会倒闭,你所运行的命令。

顺便说一句,如果这是一个长时间运行的进程,请强烈考虑在 nohup 下运行它或在 screen 内运行它,以便它在注销后仍然存在。