在将bash终端写入文件时监视文件输出

时间:2014-08-31 20:24:41

标签: linux bash

我在问这个问题,因为我非常清楚地记得,在我非常了解linux和命令行之前,曾见过与我合作的人这样做。

我正在寻找一种方法,让正在更新的文件的内容直接发送到终端,而不是简单地记录。我最接近的是使用带尾巴的手表。我想要的是在更新文件的同时将更新直接写入终端。

有人见过这样的事吗?

3 个答案:

答案 0 :(得分:8)

使用命令tee - 来自man页面,

  

<强>概要

  tee [OPTION]... [FILE]...
     

<强>描述

  Copy standard input to each FILE, and also to standard output.

或者,您可以在书面文件上运行tail -f,以便在撰写文件时进行观察(-f紧随其后)。

答案 1 :(得分:4)

tee程序完全符合您的要求。它从stdin读取并在终端上显示数据,同时将其重定向到文件。它是一个旧的UNIX工具,也可以从GNU coretutils获得。

process的输出重定向到文件并同时在终端上显示:

process | tee output.file

如果要附加到 output.file ,请使用选项-a

process | tee -a output.file

答案 2 :(得分:4)

我经常重定向某些命令的stdout和stderr,例如(在batch作业中)

make >& _make.out

然后在另一个终端,我可以运行

tail -f _make.out

它会连续显示_make.out的最后一行,所以我会在终端显示它。