zzxworld

Linux tail 命令使用指南

Linux tail 命令使用指南

tail 命令在 Linux 系统中用来输出文件的末尾部分,它跟 head 命令刚好相反。我日常使用这个命令来查看各种日志文件,因为它可以持续跟踪并输出指定日志的最新内容。

tail 命令格式

tail [选项]... [文件]...

tail 命令默认输出文件最后的 10 行内容给标准输出,如果提供了多个文件,会依次显示,并在输出每个文件内容之前给出文件名。另外文件参数是可选的,如果不提供文件参数,默认从标准输入读取内容。

tail 命令示例

输出 /var/log/nginx/access.log 文件中最新的 10 条日志内容:

tail /var/log/nginx/access.log

输出文件最后的 10 个字符:

tail -c 10 /var/log/nginx/access.log

跟踪输出文件的最新内容:

tail -f /var/log/nginx/access.log

tail 命令选项

缩写 完整名称 说明
--retry 不停地尝试打开文件。只与 -f 合用时有效。
-c --bytes=N 输出最后 N 个字节。
-f --follow[={name descriptor}] 当文件增长时,输出后续添加的数据。
-n --lines=N 自定义命令输出行数。
--max-unchanged-stats=N --follow=文件 格式的命令选项一起使用,N 是追踪文件删除或改名状态后的重新打开限制次数。默认为 5 次。
--max-consecutive-size-changes=N 跟踪文件尾部大小变化的次数,默认为 200。
--pid=PID -f 合用,表示在进程 ID,PID 死掉之后结束。
-q --quiet, --silent 从不输出文件名的首部。
-s --sleep-interval=S -f 合用,表示在每次反复的间隔休眠 S 秒。
-v --verbose 总是输出文件名的首部。
--help 显示帮助信息后退出。
--version 输出版本信息后退出。

在使用 -c-n 选项时,默认是从文件最后开始,往前算 N 项开始显示。选项值 N 的第一个字符可以为 +,这样表示从文件的开头算起,从第 N 项开始显示。N 还可以有一个倍数后缀,可用值分别如下:

  • b 表示 512
  • k 表示 1024
  • m 表示 1048576

使用 -f 或是 --follow 选项时,tail 命令后默认接文件描述符,这意味着在命令跟踪的过程中即便文件被改名了,依然可以被命令追踪到末尾追加的内容。如果不希望出现这种行为,可以使用 --follow=文件名 这种命令选项格式。这样 tail 命令会周期性的打开文件是否被改删除或是重建了。