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