tail 命令是 head 命令的补充。它读取并打印文件中的最后 N 行。如果没有任何命令选项,它将打印文本文件中的最后 10 行。在本指南中,我们将重点关注 tail 命令,并探索该命令附带的各种选项。
基本语法
$ tail [options] files(s)
(1) 显示文件的最后 10 行
如前所述,tail 命令不带任何参数,只显示文件的最后 10 行。
$ tail asian_countries.txt
(2) 显示文件的最后 N 行
假设您想要显示特定的行数,而不是默认的 10 行。要实现这一点,使用 -n 标志,后跟行数。
$ tail -n 5 asian_countries.txt
(3) 打印文件头标记
要添加与文件名相对应的头标记,请使用-v 选项,如下所示
$ tail -v asian_countries
在下面的示例中,首先打印标记 asian countries,然后是文件的最后十行
(4) 显示来自多个文件的最后 N 行
使用以下语法列出来自多个文件的最后 N 行:
$ tail -n 5 file_1 file_2
示例如下:
$ tail -n 5 asian_countries.txt europe_countries.txt
这一次,请注意使用我们在上一步中提到的文件名头来划分两个文件的内容。当查看来自多个文件的内容时,会自动添加标记名称,以便更好地显示。
如果您希望禁止 tail 命令输出中的文件头标记,那么使用 -q 选项,如下所示
$ tail -q -n 5 asian_countries.txt europe_countries.txt
(5) 输出保存到文本文件
如果您没有太多时间查看输出,而希望稍后再查看,那么可以使用大于 (>) 重定向操作符将其保存在文本文件中。
$ tail -n 5 asian_countries.txt > output.txt
注意: 大于号 (>) 在后续使用同一文件时覆盖文件,原来的内容被覆盖,新的内容被写入。
要追加或添加输出,请使用双大于号 (>>) 这会将输出添加到文件中,而不是覆盖它。
$ tail -n 5 europe_countries.txt >> output.txt
使用 cat 命令,可以看到输出文件现在包含来自两个文件的数据。
(6) 实时监视
使用 -f 选项,tail 命令主要被用于实时监控日志文件。例如,要实时监控 syslog 日志文件。每隔几秒在终端底部会有一些日志输出。
$ sudo tail -f /var/log/syslog
如果希望在日志文件轮转时继续监视它,可以在 tail 命令中使用 -F 选项。tail 命令将自动从新文件开始打印行。
$ sudo tailf -F /var/log/syslog
(7) 管道中的使用
在 Linux 中,管道提供了处理文本的一种很酷的方式。使用 tail 命令,您可以通过管道输出并进一步修改将要显示的内容。例如,可以按字母顺序对输出进行排序
$ tail asian_countries.txt | sort
还可以使用多个管道语句
$ cat asian_countries.txt | tail -n 5 | sort
(8) 从文件打印 N 字节数据
使用 -c 选项,可以从文件中打印 n 个字节的数据。
$ tail -c 400 /var/log/kern.log
上面的 tail 命令将从文件底部显示 400 字节的数据。
我们还可以使用 K 和 M 参数以 KB 和 MB 为单位打印数据,示例如下
$ tail -c 4k /var/log/kern.log
$ tail -c 4M /var/log/kern.log
(9) 获取选项的帮助
要获得更多尾部命令选项的帮助,请运行该命令
$ tail --help
您也可以访问 man 命令获取帮助
$ man tail
(10) 查看命令版本
要检查 tail 命令的版本,请执行
$ tail --version