我需要找到目录 /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
获得相同的输出,但格式略有不同