`
vaqeteart
  • 浏览: 298159 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

tail

 
阅读更多
tail [Option]... [File]...
[功能]
打印文件的最后部分。

[描述]
这个命令会打印文件的最后10行。如果指定多个文件那么会在每个文件的开始打印出相应的文件名称。
常用选项:
--retry
即使tail开始时就不能访问或者在tail运行后不能访问,也仍然不停地尝试打开文件. 只与-f合用时有用.
-c, --bytes=N
输出最后N个字节
-f, --follow[={name|descriptor}]
当文件增长时,输出后续添加的数据; -f, --follow以及 --follow=descriptor 都是相同的意思
使用--follow (-f)时,tail默认后接文件描述符, 这意味着即使tail显示的文件改名了,tail仍然可以追踪到其末尾部分. 如果你确实希望查询文件的实际名而非文件描述符 (例如,日志轮转时), 这种默认的操作就不是你所期望的了. 在这种情况下应使用--follow=name. 这将导致tail通过周期性地重新打开所指定的文件来追踪其是否被删除了,或者被其他程序重新创建了.
-n, --lines=N
输出最后N行,而非默认的最后10行
--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兆).

[举例]
测试的文件内容如下:
[quietheart@lv-k tail_test]$ cat tail_test
1  04_libraryTest
2  a.out
3  a.out.symbol
4  autotools
5  core.31058
6  cpp_test
7  download_blog
8  gpg_test
9  hello-1.0.tar.gz
10  hello-2.0
11  hello-2.0.tgz
12  main.cpp
13  mysql20110512.sql
14  rsynctest
15  tail_
16  tail_test

*显示文件的最后10行:
[quietheart@lv-k tail_test]$ tail tail_test
7  download_blog
8  gpg_test
9  hello-1.0.tar.gz
10  hello-2.0
11  hello-2.0.tgz
12  main.cpp
13  mysql20110512.sql
14  rsynctest
15  tail_
16  tail_test
这样,会显示文件myfile的最后10行。

*显示文件的最后N行:
[quietheart@lv-k tail_test]$ tail -n 5 tail_test
12  main.cpp
13  mysql20110512.sql
14  rsynctest
15  tail_
16  tail_test
这样,会显示文件myfile的最后5行。

*从第5行开始显示文件:
[quietheart@lv-k tail_test]$ tail -n +5 tail_test
5  core.31058
6  cpp_test
7  download_blog
8  gpg_test
9  hello-1.0.tar.gz
10  hello-2.0
11  hello-2.0.tgz
12  main.cpp
13  mysql20110512.sql
14  rsynctest
15  tail_
16  tail_test
这里,注意指定的数字前面有'+'代表从这个数字相应的位置开始,显示后面的内容。

*显示文件最后38个字节的内容:
[quietheart@lv-k tail_test]$ tail -c 38 tail_test
ynctest
    15  tail_
    16  tail_test
这里,使用-c指定显示的单位是字节计算。

*显示文件第38个字节开始之后的内容:
[quietheart@lv-k tail_test]$ tail -c +38 tail_test
   3    a.out.symbol
     4  autotools
     5  core.31058
     6  cpp_test
     7  download_blog
     8  gpg_test
     9  hello-1.0.tar.gz
    10  hello-2.0
    11  hello-2.0.tgz
    12  main.cpp
    13  mysql20110512.sql
    14  rsynctest
    15  tail_
    16  tail_test
这里,注意指定的数字前面有'+'代表从这个数字相应的位置开始,显示后面的内容。

*跟踪(以文件描述符号方式)文件的增长:
[quietheart@lv-k tail_test]$tail  -f tail_test
7  download_blog
8  gpg_test
9  hello-1.0.tar.gz
10  hello-2.0
11  hello-2.0.tgz
12  main.cpp
13  mysql20110512.sql
14  rsynctest
15  tail_
16  tail_test
这里,输入之后,显示默认的文件的后10行,但是tail并没有因此而结束,而是一直在运行着,保持这那个文件对应的索引节点的打开状态。接下来,如果通过"echo new >>tail_test"向文件追加内容,那么会看到tail又继续将追加的内容打印出来。如果使用"echo new>tail_test"那么tail会输出类似"tail: tail_test: file truncated"的字样来告诉文件内容被truncated了。这个命令用户跟踪动态增长的文件,例如系统日志。需要注意的是,默认来说tail就根据它自己的文件描述符号来跟踪文件,有时就向前面所说的,有的程序追加文件内容的时候会将文件删除然后新建立一个,例如有些日志程序会在一定的时候将追加的日志文件重命名,然后再建立一个之前同名的新日志文件追加新的内容,这样的话这个命令就不好用了。例如有些编辑器例如vim进行修改文件的时候,无法跟踪其变化。通过"ls -il"对vim编辑之前的文件和之后的文件的inode号对比发现,两者不同,应当是编辑的时候先删除文件的索引节点再新建立一个,新建的节点内容才包含了最新的内容,而之前tail打开的那个索引节点已经被删除了,看不见了,所以当然不会发生变化,如果想要确定那么就先用"ps -aux |grep tail"找到tail的进程号,进入/proc目录的tail进程号目录中,查看其fd文件中的某个描述符号,例如"cat 3"这样会发现原来的内容。

*跟踪文件增长(以文件名方式):
[quietheart@lv-k tail_test]$ tail --follow=name log
7  download_blog
8  gpg_test
9  hello-1.0.tar.gz
10  hello-2.0
11  hello-2.0.tgz
12  main.cpp
13  mysql20110512.sql
14  rsynctest
15  tail_
16  tail_test
这样,tail根据文件名称跟踪文件的变化,默认来说tail就根据它自己的文件描述符号来跟踪文件,就像前面所说的,有的程序追加文件内容的时候会将文件删除然后新建立一个,例如有些日志程序会在一定的时候将追加的日志文件重命名,然后再建立一个之前同名的新日志文件追加新的内容,那么默认的方式就无法跟踪到文件的变化了,因为文件描述符号是代表一个索引节点的,而新追加的内容可能追加到新的索引节点上面了,这个时候就使用这个选项。这样,如果当文件新追加内容是追加到同一名称的不同索引节点的情况发生时,那么tail那里就会提示 "tail: “tail_test” has been replaced;  following end of new file"之后再重新显示追加之后的新的最后10行。


[其它]
更多的信息参见"info tail"。
分享到:
评论

相关推荐

    windows下的tail备份

    tail for Windows 是 Windows 下的 tail DOS 命令(类似 UNIX/Linux 下的相同命令)。可用来显示文件尾部内容以及跟踪/监控文件内容变化。你也可以借助重定向符号(> 或 >>)从一个文件的指定行号开始截取内容生成另...

    Tail for Win32

    Tail for Win32 4.2.12.1,Linux下有一个tail程序,可以用来动态显示变化中的日志文件内容,这个是基于windows的版本,本身是来源于SourceForge的开源项目。 但是默认的版本有几个缺陷,因此我修改了以下功能: 1)...

    win 平台类似linux的tail 工具

    win 平台类似linux的tail 工具

    window下的tail命令

    D:\>tail/? 一成不变的方法,/?来查看使用帮助 usage: TAIL [switches] [filename]* switches: [-?] display this message [-n] display last n lines of each file (default 10) [-f filename] keep ...

    文件实时监控工具Tail源码20130415

    文件实时监控工具Tail源码 功能介绍: Tail 是一种基于命令行的文件实时监控和查看器,是对 UNIX 'tail -f' 命令的Windows移植。Tail 可以快速显示大文件的末尾部分,而无需加载整个文件。并且其可以用于查看一个...

    Tail Animator.unitypackage

    Tail Animator is package of behaviors simulating elastic tail movement with procedural animation giving many new capabilities to you! This animator will add much more realism and smoothness to your ...

    windows下使用tail命令-tail2win

    windows下使用tail命令-tail2win 下载之后解压到c:/windows/system32目录下 然后就可以像linux那样使用tail -f 指令

    window系统 tail -f 功能 界面操作

    实现window系统下 类似 Linux 命令行 tail -f 功能.使用C#语言开发,占用资源小。如有问题可留言

    File-Tail-0.99.3.tar.gz

    File-Tail-0.99.3.tar.gz File-Tail-0.99.3.tar.gz源码包

    windows下可用的tail工具,看日志首选,win7/win10可用。

    复制到 c:\windows\system32\ 然后命令行执行 tail -f xxx.log即可。

    windows tail 工具功能跟LINUX下的类似

    这个是开源的tail工具,有界面的,运行于windows环境。纯鼠标操作,还可以设置关键字过虑与高亮,在日志里面如果出现异常日志时,就可以通过这个功能只显示有问题的行。而不需要被其它正常日志信息阻碍视线

    windows的tail

    找过好几个windows的tail工具,都有很多问题,比如手动改写一下文件,就无法再监控等等。于是自己写了一个。 用法: 1. 将tail.exe放在特定的路径,然后把该路径加入到系统path中,之后就可以在控制台,像linux的...

    windows cmd tail 工具

    windows cmd tail 工具 以前在公司时服务器上面可以实现tail 命令查看程序运行日志,感觉相当不错,上网查了下这些命令是linux 下的,还好有好心人开发了一个可以在Windows下的运行的小工具,来给分享一下: 使用...

    windows tail加强版

    在原来基础上修改了下,以前用tail是只要我把文件的内容删除了一点,tail就会崩溃。读取2G以下的文件还是没有问题的。 新加的功能: 1.命令格式,默认是显示文件最后的10行,如果文件没有,则会创建 tail 文件路径 ...

    tail-for-windows.zip

    windows操作系统的tail工具,可实时监控一些日志,直接放到系统盘下面,命令行运行

    WIndows版tail命令工具

    Linux有一个tail命令可以实时输出文本文件内容 而windows却没有类似的命令 这回用这个工具可以在windows里可以使用tail命令了 命令方法和Linux使用方法一样 方法:解压缩,把tail.exe放到c:\windows\system32\目录下,...

    windows命令行使用的tail

    在windows的命令行中使用的tail程序,可以支持tail -f查看文件。

    windows下使用tail命令

    将文件copy到windows/system32/下 在命令行即可和linux一样会使用tail命令

    windows下的tail工具

    在windows下使用的,类似linux下的tail工具,建议放到c:\windows\system32\目录下,任意位置都可以执行

    Tail Animator 1.3.7.unitypackage

    Tail Animator is package of behaviors simulating elastic tail movement with procedural animation giving many new capabilities to you! This animator will add much more realism and smoothness to your ...

Global site tag (gtag.js) - Google Analytics