使用 tail 命令显示新创建的文件

你想做的事

跟踪和查看新创建的日志文件。无需创建功能等,就可以用单行实现它。

tail 命令的基本功能

使用 tail 命令继续显示日志文件

$ tail -f file.log

# 一旦file.logがリネームや消去をされて新たにfile.logが作成されても表示し続ける
$ tail -F file.log 

已经足够了,但是当使用不同名称创建新文件时,仅使用 tail 命令来跟踪和显示是不可能完成的。

使用 tail 命令显示最新文件

在将日志附加到新的别名文件(例如 file1.log、file2.log ...)时显示最新文件

$ tail -f $(ls -tr file*.log | tail -n 1)

好的。但是$(ls -tr file*.log | tail -n 1)部分在你键入命令时只执行一次,所以即使之后创建了一个新文件,也不会被跟踪和显示。

参考: 在某些情况下模式不佳
$ watch -n 60 -c "ls -tr file*.log  | tail -n 1 | xargs tail"

如果是这样,它将每 60 秒监视一次,并在创建新文件时显示它。 watch 命令中的-c 是文本中的彩色显示。一般来说,你可以用这个来实现你想要做的,但是如果你在日志文件中显示一个带有tqdm等的进度条或者如果包含\rfor return,即使正常显示tail -f,这个方法显示坏了。

参考: 总是一个好的模式
$ while : ; do timeout 60 tail -f $(ls -tr file*.log | tail -n 1)  ; done

由于watch命令中的tail命令在有return时无法正常显示,所以可以通过无限循环和超时相结合的方法来显示正常tail命令的结果。

原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308624603.html

32人参与, 0条评论 登录后显示评论回复

你需要登录后才能评论 登录/ 注册