我在问这个问题,因为我非常清楚地记得,在我非常了解linux和命令行之前,曾见过与我合作的人这样做。
我正在寻找一种方法,让正在更新的文件的内容直接发送到终端,而不是简单地记录。我最接近的是使用带尾巴的手表。我想要的是在更新文件的同时将更新直接写入终端。
有人见过这样的事吗?
答案 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
的最后一行,所以我会在终端显示它。