57

在 Linux 中,使用 command tailf,如何跟踪文件夹内和子文件夹中的多个日志文件?

4

5 回答 5

89

要记录文件夹中的所有文件,您可以转到该文件夹​​并写入

tail -f *.log

要将子文件夹添加到 tailf 命令,请使用

tail -f **/*.log

当然,可以改进正则表达式以仅匹配特定文件名。

于 2013-08-19T19:13:08.460 回答
30

这将递归地查找当前目录及其子文件夹中的所有 *.log 文件并跟踪它们。

find . -type f \( -name "*.log" \) -exec tail -f "$file" {} +

或者很快使用 xargs:

find . -name "*.log" | xargs tail -f

于 2013-12-11T05:35:25.187 回答
17

如果所有日志文件的扩展名不同。您可以使用以下命令。

tail -f **/*
于 2016-06-23T10:31:35.787 回答
1

这种方式递归查找文件,从每个文件的第 5 行开始打印行并保存在 concat.txt

find . -type f \( -name "*.dat" \) -exec tail -n+5 -q "$file" {} + |tee concat.txt
于 2015-08-26T17:23:49.007 回答
0

如果文件集发生变化,将 luchaninov 的评论形式化为答案multitail是很有用的。相反,tail似乎无法找到启动后创建的新文件。

安装:

sudo apt install multitail

手动的:

man multitail

用法:

multitail -Q 4 '/path/to/logs/*.log'

上面的命令应该每隔指定的秒数检查​​新文件的引用模式。必须引用该模式。

于 2021-11-20T16:57:59.587 回答