1. 在我是用 tail -f file.txt 对这个文件进行动态追踪时:

  1. 我重新打开一个新的终端进行vim编辑这个文件并且保存

  1. 这是我们发现,tail -f file.txt'动态追踪的这个文件没有任何的变化,失去了效果

  2. 发生上述情况的原因是:vim是将原来的文件删除后,然后再生成一个新的文件,而tail -f命令是根据文件的inode来追踪文件的,vim把原来的文件删除,新生成的同名文件的inode已经发生了变化,所以导致tail -f命令失效。

我们来验证一下:

  1. 首先查看file.txt的文件的inode

    ls -i file.txt

  1. 当我们使用vim进行编辑保存后:

    vim file.txt
  2. 再查看file.txt文件的inode

    ls -i file.txt

  1. 可以看到vim命令在将这个文档编辑之后删除重新生成一个同名文件

结论:tail -f通过inode追踪文件,如果文件的inode发生了变化,将会使tail -f失效。

解决方案

使用tail -F替代tail -f,根据man tail的说明,tail -F在文件不可以打开的时候,会重试打开该文件,也就是在vim删除旧文件,创建新文件的过程中,tail短暂性失去了对tmp.test文件的访问权限,加上-F选项后,tail在文件恢复访问后可以重新对文件实施跟踪。

最新文章

  1. cvCreateCameraCapture
  2. SAP SLT (Landscape Transformation) 企业定制培训
  3. C# 常用正则表达式
  4. Linq世界走一走(LINQ TO XML)
  5. [RGEOS]支持栅格数据读取和显示
  6. JVM 关闭前执行命令的钩子
  7. mvn命令
  8. socket基础(二)
  9. 【Xamarin 挖墙脚系列:Windows 10 一个包罗万象的系统平台】
  10. ubuntu_安装aptana3
  11. 模板引擎mustache.js
  12. Servlet常用的接口和类
  13. Map根据value值进行倒序排列
  14. FireDAC 连接SQL Server一些要注意的地方(转)
  15. 非WifI环境处理
  16. SQL: Cannot create JDBC driver of class '' for connect URL
  17. 《JavaScript Dom 编程艺术》读书笔记-第7章
  18. Maven私服(Nexus)资源上传下载
  19. # 2019-2020.3 《java程序设计》第一周学习总结
  20. Python3学习笔记25-logging模块

热门文章

  1. 实用干货!Java开发企业级权限管理系统视频教程
  2. java中读取word文档里的内容
  3. Java基础集合简单总结
  4. java数组之system.arrayCopy
  5. ACID隔离性
  6. JS function 是函数也是对象, 浅谈原型链
  7. [每日一题]面试官问:Async/Await 如何通过同步的方式实现异步?
  8. AI驱动的超分辨技术落地实践
  9. 基础篇:JAVA原子组件和同步组件
  10. HDFS中大数据常见运维指令总结