linux 如何一次截断多个日志文件,只保留最后N行?

kb5ga3dv  于 2023-06-29  发布在  Linux
关注(0)|答案(1)|浏览(240)

我有两个命令,我通常用来截断日志文件,但问题是第一个将完全截断它,第二个只在一个文件的时间。

  1. find /path/to/log/directory -name *log -exec cp /dev/null '{}' \;
  2. echo "$(tail -1000 /home/username/public_html/error_log)" > /home/username/public_html/error_log
    我需要的命令,将在多个日志文件一次工作,并截断它,使最后1000行将留在这些日志文件。
    谢谢:cheers:
cgvd09ve

cgvd09ve1#

执行此操作的简单命令应该是:

for file in *.log; do [[ -f "$file" ]] && echo "$(tail -n 1000 "$file")" > "$file"; done

此命令搜索当前目录中的所有.log文件,并通过仅保留最后1000行来截断它们。

相关问题