tail 命令是 head 命令的补充。它读取并打印文件中的最后 N 行。如果没有任何命令选项,它将打印文本文件中的最后 10 行。在本指南中,我们将重点关注 tail 命令,并探索该命令附带的各种选项。

基本语法

$ tail [options] files(s)

(1) 显示文件的最后 10 行

如前所述,tail 命令不带任何参数,只显示文件的最后 10 行。

$ tail asian_countries.txt

Default-Tail-Command-Output

(2) 显示文件的最后 N 行

假设您想要显示特定的行数,而不是默认的 10 行。要实现这一点,使用 -n 标志,后跟行数。

$ tail -n 5 asian_countries.txt

Display-n-number-of-lines-with-tail-command

(3) 打印文件头标记

要添加与文件名相对应的头标记,请使用-v 选项,如下所示

$ tail -v asian_countries

在下面的示例中,首先打印标记 asian countries,然后是文件的最后十行

Print-FileName-Header-Tail-Command

(4) 显示来自多个文件的最后 N 行

使用以下语法列出来自多个文件的最后 N 行:

$ tail -n 5 file_1 file_2

示例如下:

$ tail -n 5 asian_countries.txt europe_countries.txt

这一次,请注意使用我们在上一步中提到的文件名头来划分两个文件的内容。当查看来自多个文件的内容时,会自动添加标记名称,以便更好地显示。

Display-lines-from-multiple-files-tail-command

如果您希望禁止 tail 命令输出中的文件头标记,那么使用 -q 选项,如下所示

$ tail -q -n 5 asian_countries.txt europe_countries.txt

(5) 输出保存到文本文件

如果您没有太多时间查看输出,而希望稍后再查看,那么可以使用大于 (>) 重定向操作符将其保存在文本文件中。

$ tail -n 5 asian_countries.txt > output.txt

Save-Tail-Command-Output

注意: 大于号 (>) 在后续使用同一文件时覆盖文件,原来的内容被覆盖,新的内容被写入。

要追加或添加输出,请使用双大于号 (>>) 这会将输出添加到文件中,而不是覆盖它。

$ tail -n 5 europe_countries.txt >> output.txt

使用 cat 命令,可以看到输出文件现在包含来自两个文件的数据。

Append-Tail-Command-Output

(6) 实时监视

使用 -f 选项,tail 命令主要被用于实时监控日志文件。例如,要实时监控 syslog 日志文件。每隔几秒在终端底部会有一些日志输出。

$ sudo tail -f /var/log/syslog

Real-Time-Logs-Monitoring-Tail-Command

如果希望在日志文件轮转时继续监视它,可以在 tail 命令中使用 -F 选项。tail 命令将自动从新文件开始打印行。

$ sudo tailf -F /var/log/syslog

(7) 管道中的使用

在 Linux 中,管道提供了处理文本的一种很酷的方式。使用 tail 命令,您可以通过管道输出并进一步修改将要显示的内容。例如,可以按字母顺序对输出进行排序

$ tail asian_countries.txt | sort

Tail-Command-Output-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

Tail-help-Command

您也可以访问 man 命令获取帮助

$ man tail

man-tail-command

(10) 查看命令版本

要检查 tail 命令的版本,请执行

$ tail --version

Check-Tail-Command-Version

我的开源项目


鸠摩智首席音效师
472 声望9 粉丝

身强体健,龙精虎猛的活着。