博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tail -f 和 -F 的用法
阅读量:6830 次
发布时间:2019-06-26

本文共 853 字,大约阅读时间需要 2 分钟。

-f 是--follow[=HOW]的缩写, 可以一直读文件末尾的字符并打印出来.

"[=HOW]"有两个写法,一个"=descriptor",另一个是"=name", 默认使用的是"descriptor", 如果你跟踪的文件被移动或者改名后, 你还想继续tail它, 你可以使用这个选项.
举个例子:
首先启动下面进程
while [ "true" ] ; do date >> test.log; sleep 1 ; done;
然后在开一个新的进程,我是新开了一个终端, 起名叫 bash-2
tail -f test.log
你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C,
mv test.log test.log1;
while [ "true" ] ; do date >> test.log1; sleep 1 ; done;
继续观察bash-2, 发现屏幕在输出test.log2的内容.
descriptor 虽然是默认的参数,但是一定是最有用的,比如在tail 一个log文件的时候,这个文件很可能是按照日期或者大小滚动, 文件滚动之后这个tail -f命令,就失效了. 我在之前写的一个脚本里面就遇到了这个问题, 这个时候可以使用-F 命令
-F 是--follow=name --retry的缩写, --follow=name是按照文件名跟踪文件, 可以定期去重新打开文件检查文件是否被其它程序删除并重新建立. --retry这个参数, 保证文件重新建立后,可以继续被跟踪.
还是上面的例子,
在bash-1中输入,
while [ "true" ] ; do date >> test.log; sleep 1 ; done;
bash-2中,
tail -F test.log
bash-3中,
rm test.log;
然后看bash-2, 屏幕上依然在继续输出test.log的内容. 如果是在使用-f 时候,那bash-2应该就停止显示log了.

转载地址:http://ujnkl.baihongyu.com/

你可能感兴趣的文章
【转载】在线QQ MSN TEL交谈工具代码
查看>>
查看Oracle数据库中的用户、ORACLE下有三个视图
查看>>
Linux进程管理子系统
查看>>
NC portal怎么重新开始入门,整个配置过程包括配置一个节点
查看>>
使用github托管自己的项目
查看>>
2015年2月2日
查看>>
softmax实现cifar10分类
查看>>
gluoncv 导入方式
查看>>
无平方因子的数
查看>>
【Prince2科普】项目四大管理步骤
查看>>
jquery.validate使用 - 1
查看>>
python头部 #!/usr/bin/env python
查看>>
几个基本实验情形
查看>>
Python学习笔记之五:类定义
查看>>
Oracle查询前几条数据的方法
查看>>
关于opacity的兼容问题
查看>>
机器学习(1)之梯度下降(gradient descent)
查看>>
Luogu P4735 最大异或和
查看>>
计算机外部设备功能
查看>>
Project Euler Problem 4: Largest palindrome product
查看>>