zoukankan      html  css  js  c++  java
  • 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/以下。

    这里我们要说的是 tail -f 和 tail -F 的区别:

    在使用 tail -f 和 tail -F 同时打开一个日志文件,然后写入日志文件,最后更新日志文件,观察实时日志的变化

    tail -f 

    [root@aliyun var]# tail -f test.log 
    hello
    world

    等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止

    tail -F    

    [root@aliyun var]# tail -F test.log 
    hello
    world
    tail: ‘test.log’ has become inaccessible: No such file or directory
    tail: ‘test.log’ has appeared;  following end of new file
    日志文件更新后

    等同于--follow=name  --retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪

    在 flume exec source 中切记使用 -F

    但是也有一种情况例外

    当需求是实时查看文件的变化并且要显示文件的中的后n行只能使用 tail -nf

    [root@aliyun var]# tail -5f test.log
    日志文件更新后

    因为没有tail -nF这种写法

    [root@aliyun var]# tail -5F test.log
    tail: option used in invalid context -- 5
    学习中,博客都是自己学习用的笔记,持续更新改正。。。
  • 相关阅读:
    【洛谷】P2880 [USACO07JAN]平衡的阵容Balanced Lineup(st表)
    【洛谷】P1052 过河(状压dp)
    【洛谷】P1541 乌龟棋(四维背包dp)
    【BZOJ】4721: [Noip2016]蚯蚓 / 【洛谷】P2827 蚯蚓(单调队列)
    【洛谷】P1064 金明的预算方案(dp)
    【洛谷】P3908 异或之和(异或)
    【洛谷】P2434 [SDOI2005]区间(暴力)
    【洛谷】P2694 接金币(排序)
    【BZOJ】1012: [JSOI2008]最大数maxnumber /【洛谷】1198(线段树)
    【游记】noip2017酱油记
  • 原文地址:https://www.cnblogs.com/Tunan-Ki/p/11749768.html
Copyright © 2011-2022 走看看