Linux tail 命令17 Mar 2025 | 6 分钟阅读 Linux tail 命令用于显示一个或多个文件的最后十行。它的主要目的是读取错误消息。默认情况下,它显示文件的最后十行。此外,它还用于实时监控文件更改。它是 head 命令的补充命令。 tail 简介默认情况下,tail 命令显示文件内容。显示从行、512 字节块或输入内的块位置开始。包含前导加号的数字与输入的开始相关,例如,"-c +2" 在第二个输入字节处开始显示。包含前导减号或没有显式符号的数字与输入的完成相关,例如,"-n 2" 显示最后两行输入。"-n 10" 或最后十行输入是默认的起始位置。 tail 命令将指定文件复制到 stdout,从指定位置开始。如果未指定文件,则复制 stdin。复制从 +number 位置(从输入开始测量)或 -number(从输入完成处测量)开始。根据附加的 b、c 或 l 标志,数字以字节、1K 块或行计量。-101 是默认值。 此外,r 标志导致 tail 命令从文件末尾开始反向显示行。f 标志导致 tail 命令在显示完末尾后继续监视并显示更多数据。 语法实现GNU coreutils 中包含的 tail 版本由 Jim Meyering、Ian Lance Taylor、David MacKenzie 和 Paul Rubin 指定。该命令作为独立包提供给 Microsoft Windows,是 UnxUtils 一系列通用 GNU 类 Unix 实用程序的原生 Win32 端口的一部分。FreeDOS 版本由 M. Aitchison 集成。此外,tail 命令是 ASCII 为 MSX-DOS2 提供的 MSX-DOS2 Tools 的组件。 CCZE 在显示彩色结果时也类似于 tail。pctail 与 CCZE 相同。它是一个用 Python 编写的彩色 tail,可以对 syslog 结果进行着色和 tail。Inotail 是一个 detracted inotify 内核接口实现。早期版本的 tail 每次都会轮询以检查是否可以显示新数据。Inotail 使用 Linux 内核的 inotify 接口,该接口于 2015 年 8 月在 2.6.13 版本中引入,因此它只检查新数据。 MultiTail 不仅以多种颜色显示日志文件;它还可以过滤、滚动回、合并和将终端屏幕分割成子窗口。它或多或少是 Beeper、diff、grep、CCZE/pctail、watch、sed、tail 等的组合。 文件监控tail 命令有两个特殊的行选项 -F 和 -f,允许管理文件。tail 命令不只是显示一些最后几行然后关闭,而是显示行并审计文件。当新行被其他进程添加到文件时,tail 命令可以更新显示。 特别是,它对于审计日志文件非常有用。旧版本的 tail 命令默认每次都轮询文件,但它支持 2005 年 8 月 Linux 内核 2.6.13 版本中指定的 inotify 基础结构,该基础结构仅在内核通知修改时才监视文件。 默认行为tail 命令的默认用法是显示文件的最后十行。创建一个文件 'num.txt',其中包含数字 1 到 15(每个数字占一行)。 让我们通过执行不带任何参数的 tail 命令来打开它,如下所示 考虑下面的输出 ![]() 从上面的输出中,我们可以看到 'num.txt' 的最后十行被显示出来了。 tail 的选项
如果跟踪的文件变得不可用或被删除,tail 命令将继续搜索,并在文件创建时显示文件内容。当从 stdin 而不是文件读取时,-F 选项类似于 -f 选项。
除非指定了 -q 选项,否则所有文件都以 **"==> XXX <=="** 字符串组成标题进行前缀,其中 XXX 是文件名,如果指定了多个文件。 显示特定行数'-n' 选项显示指定行数。要指定行数,请执行如下命令 它将从末尾显示指定行数。请看下面的例子 上面的命令将显示 'num.txt' 的最后五行。我们也可以省略字母 'n',而是使用连字符 (-) 和数字,中间没有空格。请看下面的输出 ![]() 从上面的输出中可以看出,'num.txt' 的最后五行被显示出来了。 显示指定字节数'-c' 选项从末尾显示指定的字节数。要显示指定的字节数,请执行如下命令 它将显示指定的字节数。请看下面的例子 上面的命令将显示从末尾开始 up to 6 字节的文件内容。请看下面的输出 ![]() 从上面的输出中,显示了 'num.txt' 文件的最后六个字节。 我们也可以在数字后面使用后缀,例如 b、kb、k、MB 等来指定字节数。这些后缀将指定的数字乘以 b:乘以 512。 kb:乘以 1000。 k:乘以 1024。 MB:乘以 1000000。 跟踪文件更改要跟踪文件更改,可以使用 '-f' 选项。这里,'-f' 表示“跟随”。它对于监控日志文件很有用。执行以下命令 上面的命令将监控 'num.txt' 文件。要退出监控,请按 "CTRL+C" 键。请看下面的输出 ![]() 显示多个文件我们可以通过执行 tail 命令一次显示多个文件的末尾内容。要显示多个文件,请将文件名作为输入。它将显示指定文件的最后十行。 例如,我们有另一个文件 'alphabet.txt',其中包含字母表中的每个字符,每个字符占一行。要显示 'num.txt' 和 'alphabet.txt' 这两个文件,请执行以下命令 上面的命令将显示指定文件的最后十行。请看下面的输出 ![]() 从上面的输出中可以看出,指定文件的最后十行被同时显示出来了。 Tail 与其他命令结合使用tail 命令可以与其他命令一起使用。它可以被管道传输到其他命令以过滤输出。请看下面的命令 从上面的命令中,我们将 tail 命令与 ls 命令管道化。它将只显示最后修改的六个文件或文件夹。请看下面的输出 ![]() 让我们执行 tail 命令和 ps 命令以显示顶部正在运行的进程。执行以下命令 考虑下面的输出 ![]() 下一主题Linux cat |
我们请求您订阅我们的新闻通讯以获取最新更新。