tail

显示文件最后几行数据内容


语法格式

tail [-fFqv] [-c num] [-n lines] [-s n] [--pid=pid] [--follow=name]
[--retry] [--max-unchanged-stats=n] [files]
tail [--help] [--version]

命令简介

tail命令用于显示指定文件最后几行数据内容。其中,files是一个或一组输入文件。如果未指定文件名参数,或者指定的文件名为“-”,使用标准输入作为输入文件。如果未指定任何选项,默认显示文件最后10行数据内容(包括空行)。如果同时指定了多个文件,在显示每个文件的正文之前将会增加下列标题信息作为分隔标志:

==> filename <==

命令选项

-c num, --bytes=num  显示指定文件最后num个字节的数据,而非最后num行数据。此外,如果数字参数num前面有一个加号“+”前缀,表示从指定文件前数第num个字节位置开始显示文件数据。参数num之后还可以加字节单位后缀,如 b(512)、kB(1000)、K(1024)、MB(10002)、M(10242)、GB(10003)、G(10243)甚至T、P、E、Z或Y等更大的字节单位。

-f, --follow[={name|descriptor}]  当指定的文件不断增长时,采用无限循环的方式,尝试读取文件的结尾,以期获取更多的数据,把读取的数据写到标准输出。如果命令行指定了多个文件,无论何时读到数据,首先输出一个标题行,继之输出读取的数据,说明数据来自哪个文件。利用这些选项,可以采用两种方法跟踪文件。但是,仅当跟踪的文件被删除或改名时,两种跟踪方法才会呈现差别。如果想要跟踪一个不断增长的文件,即使文件已经删除或改名,也可以使用“--follow=descriptor”选项继续跟踪文件,这是tail命令的默认处理方式。但是,如果需要跟踪一个循环截取(删除或重新命名、然后重新打开)的日志文件时,上述选项是没有用的,在此情况下,可以使用“--follow=name”选项跟踪指定文件名的文件,检测文件是否已经删除或重建。不管采用哪一种方法,如果跟踪的文件变小,tail命令将会输出一条信息,说明文件已经截短,然后从新确定的位置开始恢复跟踪文件。当跟踪的文件已经删除时,tail命令的处理方式取决于按名字还是按描述符跟踪。如果按名字跟踪,tail能够检测到文件是否已经删除(删除时输出一条文件删除信息),如果此时也指定了“--retry”选项,tail将会周期地连续检测,确定同名的文件是否重现。如果按描述符跟踪,tail并不检测文件是否已经删除或改名,也不输出任何信息,尽管已无法按原名访问文件,但文件仍以新的名字存在,而且也在不断地增长。注意,“-f”、“--follow”与“--follow=descriptor”这3种写法是等价的。

-F  相当于同时指定了“--follow=name”与“--retry”选项。当指定的文件已经删除时,tail将会尝试重新打开文件,如果失败,tail将会继续尝试,直至文件能够再次访问。

-n lines, --lines=lines  显示指定文件最后lines行数据。然而,如果在指定的行数之前增加一个“+”前缀(即“+lines”),表示从指定文件前数第lines行开始显示文件。

--max-unchanged-stats=n  与“--follow=name”选项一起使用时,重新打开一个历经n次(默认为5次)测试一直未改变大小的文件,确定其是否已经删除或改名(如经常采用重新命名文件方式的循环日志文件)。

--pid=pid  与“-f”选项一起使用时,可以随着指定进程的终止而自动终止执行tail命令。其中pid是进程ID。

-q, --quiet, --silent  禁止输出含有文件名的标题信息。

--retry  与“--follow=name”选项一起使用时,尝试打开指定的文件,即使文件不存在或无法访问。如果未指定此选项,当遇到文件不存在或无法访问的情况时,tail命令将会在输出错误信息后立即终止运行,不会尝试再次检测。

-s n, --sleep-interval=n  修改循环检测的时间间隔(单位为秒),默认值是1.0秒。每次循环检测时,检测指定文件的大小是否发生变化。同“-f”选项一起使用时,睡眠n秒之后再开始重复显示。

-v, --verbose  总是输出含有文件名的标题信息。

-num[bcl]  为保持兼容而保留的省略用法,其中b表示512字节的数据块,c表示字节,l表示行,如果省略后缀,其效果等同于“-n num”选项,即显示指定文件最后num行数据。如果num前面是一个“+”而非“-”,表示从指定文件前数第num行(第num个数据块或第num个字节位置)开始显示文件。

--help  显示命令的用法、概述与选项说明等帮助信息,然后退出。

--version  显示命令的版本、版权与作者等信息,然后退出。

应用实例

1. 显示系统日志文件/var/log/messages最后10行新的数据,同时监控文件的变化。

# tail –f /var/log/messages

2. 从前数第600行处开始显示指定的文件。

# tail -n +600 /var/log/dmesg

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z