2

我一直在尝试找到一种方法来tail等待文件被创建,然后开始跟踪它们。

例如,假设我有一个logs尚未创建的目录,但我的应用程序会创建它。假设我有另一个进程,我想在其中运行tail -F logs/*.log并让它在所有文件创建后立即开始跟踪它们。我该怎么做呢?

还有一件事:如果tail正在拖尾某个被删除的文件,是否可以让它再次开始拖尾,如果它被重新创建?

4

2 回答 2

2

有点粗糙,这有效:

while inotifywait -q .; do kill $PID; tail -F -n 0 * & PID=$!; done

一旦目录中的任何内容发生更改,该tail命令就会重新启动。

于 2013-06-21T13:40:00.220 回答
1

还有一件事:如果 tail 拖尾了某个被删除的文件,如果它被重新创建,是否有可能让它再次开始拖尾?

当您正在tail处理一些被截断并重新创建的文件时;tail命令会自动处理它。您无需tail为该特定文件重新发出命令。

于 2013-06-21T12:08:59.207 回答