【转】linux tail命令使用方法详解

时间:2024-01-08 08:09:14

原文网址:http://www.111cn.net/sys/linux/46902.htm

linux tail命令用途是按照要求将指定的文件的最后部分输出到标准设备,一般是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上,如果该档案有更新,tail会自动刷新,确保你看到最新的档案内容。

一、tail命令语法
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]

参数说明:

■-f 该参数用于监视File文件增长。
■-c Number 从 Number 字节位置读取指定文件
■-n Number 从 Number 行位置读取指定文件。
■-m Number 从 Number 多字节字符位置读取指定文件,比如你的文件如果包含中文字,如果指定-c参数,可能导致截断,但使用-m则会避免该问题。
■-b Number 从 Number 表示的512字节块位置读取指定文件。
■-k Number 从 Number 表示的1KB块位置读取指定文件。
■File 指定操作的目标文件名
上述命令中,都涉及到number,如果不指定,默认显示10行。Number前面可使用正负号,表示该偏移从顶部还是从尾部开始计算。

tail可执行文件一般在/usr/bin/下面。

示例

要显示 notes 文件的最后十行,输入:
tail notes要指定从 notes 文件末尾开始读取的行数,输入:
tail  -n 20 notes
要从第 200 字节开始,每次显示一页 notes 文件,输入:
tail  -c +200 notes | pg
要跟踪文件的增长,输入:
tail  -f accounts
这显示 accounts 文件的最后十行。tail 命令继续显示添加到 accounts 文件中的行。显

示会一直继续,直到您按下 Ctrl-C 按键顺序来停止。
文件/usr/bin/tail包含 tail 命令。

说明:逆序显示filename最后10行。

补充:

跟tail功能类似的命令还有【FRM:鸟哥】:

■cat 从第一行开始显示档案内容。
■tac 从最后一行开始显示档案内容。
■more 分页显示档案内容。
■less 与 more 类似,但支持向前翻页
■head 只显示前面几行
■tail 只显示后面几行
■n 带行号显示档案内容
■od 以二进制方式显示档案内容

--retry 
即使tail开始时就不能访问或者在tail运行后不能访问,也仍然不停地尝试打开文件. -- 只与-f合用时有用. 
-c, --bytes=N 
输出最后N个字节 
-f, --follow[={name|descriptor}] 
当文件增长时,输出后续添加的数据; -f, --follow以及 --follow=descriptor 都是相同的意思 
-n, --lines=N 
输出最后N行,而非默认的最后10行 
--max-unchanged-stats=N 
参看texinfo文档(默认为5) 
--max-consecutive-size-changes=N 
参看texinfo文档(默认为200) 
--pid=PID 
与-f合用,表示在进程ID,PID死掉之后结束. 
-q, --quiet, --silent 
从不输出给出文件名的首部 
-s, --sleep-interval=S 
与-f合用,表示在每次反复的间隔休眠S秒 
-v, --verbose 
总是输出给出文件名的首部 
--help 
显示帮助信息后退出 
--version 
输出版本信息后退出 
如果N(字节或者行数)的第一个字符为`+', 那么从每个文件的开头算起的第N项开始显示, 否则, 显示该文件的最后N项. N可以有一个倍数前缀: b表示512,k表示1024,m表示1048576(1兆). 第一个选项 -VALUE 或+VALUE 以-n VALUE或-n +VALUE 方式看待,除非VALUE含有[bkm]后缀倍数中的一个,在这种情况下,它被看作 -c VALUE 或者-c +VALUE

使用--follow (-f)时,tail默认后接文件描述符, 这意味着即使tail显示的文件改名了,tail仍然可以追踪到其末尾部分. 如果你确实希望查询文件的实际名而非文件描述符 (例如,日志轮转时), 这种默认的操作就不是你所期望的了. 在这种情况下应使用--follow=name. 这将导致tail通过周期性地重新打开所指定的文件来追踪其是否被删除了,或者被其他程序重新创建了.