Linux:在目录树中查找文件 *.log 并在每个文件中写入最后 10 行

Linux:在目录树中查找文件 *.log 并在每个文件中写入最后 10 行

我需要找到目录 /var 及其所有树目录中以 .log 结尾的所有文件;并写入每个 *.log 文件的最后十行


cd /var sudo find -name '*.log' -print


该命令允许我找到这些文件。我看到的是: ./log/auth.log ./log/Xorg.0.log .... ./log/apt/term.log .log/alternatives.log 我尝试使用 for var in sudo find -name '*.log'; do tail -n 10 $var; done打印行,但出现错误。那么我应该使用什么命令来查找文件并打印行呢?

答案1

尝试这个

find /var -name "*.log" -type f -exec tail '{}' +

解释

-type f- 只查找文件

-exec <command> {} +- 执行命令。请参阅 man find 以获取更多信息

或者

for i in $(find /var -name "*.log" -type f); do echo $i; tail $i; done

获得相同的输出,但格式略有不同

相关内容