linux – tail -f没有尾巴?

linux – tail -f没有尾巴?,第1张

概述在Solaris中是否有一个命令来读取文件,当它到达尾部时,尾部的方式是什么?我需要从头开始读取文件,它是一个二进制文件. 有关Solaris和Linux的信息将不胜感激. tail -9999f将做一些接近你想要的东西.如果您的文件更大,请添加更多9. 问题: >二进制文件可能没有换行符. tail -f将在打印任何内容之前等待换行. > Solaris上的尾部版本(您没有提到哪个Solaris 在Solaris中是否有一个命令来读取文件,当它到达尾部时,尾部的方式是什么?我需要从头开始读取文件,它是一个二进制文件.

有关Solaris和Linux的信息将不胜感激.

解决方法 tail -9999f将做一些接近你想要的东西.如果您的文件更大,请添加更多9.

问题:

>二进制文件可能没有换行符. tail -f将在打印任何内容之前等待换行.
> Solaris上的尾部版本(您没有提到哪个Solaris但它可能无关紧要)可能不支持该选项.它可能支持tail -n 9999 -f.您可能必须获得GNU版本的尾部.
>因为文件不断增长,所以在找出它有多大和开始尾部过程之间存在竞争条件.如果你没有要求它获得足够的行,你可能会错过文件的开头.
> tail将不知道你何时真正写完文件所以你的gzip进程也永远不会完成.我不确定当你按ctrl-c来结束尾部进程时会发生什么,但gzip很可能会自行清理并删除它正在处理的文件.

我的建议是启动你的原始程序并将输出管道输出到gzip,如下所示:

./my_program | gunzip > new_file.txt

这样,如果my_program变慢,gunzip会等待,但是当my_program表示文件的真正结束时,它仍然会完成.

您可能需要重写程序以写入STDOUT而不是直接写入文件.

编辑:

看了man page之后,可以解决上面的三个问题.使用-c< bytes>选项而不是-n< lines>缓解问题1.使用-n 0或-c 0缓解问题3.使用–pID =< PID>当原始程序(以< PID>运行)终止时,尾部将终止,这减轻了问题4.

总结

以上是内存溢出为你收集整理的linux – tail -f没有尾巴?全部内容,希望文章能够帮你解决linux – tail -f没有尾巴?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1039656.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存