持续打印Linux终端中文件的最后一行

17

有两个问题,但只卡在一个上。觉得我需要第一个问题的答案,这样别人才能帮我理解。

4)使用cat和/dev/null创建一个空文件。

5)启动一个后台进程,连续打印#4中创建的文件的最后一行。

所以我给第四个问题做了:

cat /dev/null > emptyfile

这创建了一个空文件。好的,我对此感到满意。然而,下一个问题让我困惑。如何读取空文件的最后一行?更好的方法是如何连续地执行此操作?在后台运行不是问题。有人有任何想法吗?我们还没有涉及脚本编写,所以我不认为它起作用。感谢您的帮助。


你可以使用 echo -n > nonemptyfile 命令清空文件内容。你也可以使用 touch emptyfile 命令创建一个空文件。 - Timothy Zorn
3个回答

50
使用带有 -f 选项的 UNIX 命令 "tail",它会不断将文件内容打印到终端,随着文件内容的不断添加而更新。
示例:
tail -f emptyfile
你可以通过键入Ctrl + C来终止尾部进程。

连续从文件中打印内容不是要求。 - Ignacio Vazquez-Abrams
2
嗯,是的。问题提到连续读取最后一行两次。 - Kim Burgaard
如果我向文件中追加了5行,则输出5行。如果我没有追加任何行,则输出0行。 - Ignacio Vazquez-Abrams

4

tail -f FILE_NAME 不起作用吗?


2

使用watch或者带延迟的循环来实现tail命令。

而且,不需要使用cat命令或者/dev/null设备。

> emptyfile

tailwatch示例:

watch tail -n 1 log.txt会始终显示日志文件的最后一行。 watch中的默认间隔为2秒。


太棒了!watch tail -n 1 log.txt正是我想要的东西! - mccbala

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接