Gea*_*Lin 12
在linux中你可以使用tail -f -n +0 /path/filename它来查看它。虽然 -n 通常是指要打印的文件末尾的多少行,但传递时+<n>它从文件开头的第 n 行开始。
来自tail --help:
-n, --lines=K output the last K lines, instead of the last 10;
or use -n +K to output lines starting with the Kth
Run Code Online (Sandbox Code Playgroud)
tail -9999f会做一些接近你想要的东西。如果您的文件更大,请添加更多 9。
问题:
tail -f将在打印任何内容之前等待换行符。tail在Solaris(你没有提到它的Solaris,但它可能并不重要)可能不支持该选项。它可能支持tail -n 9999 -f. 您可能需要获得 GNU 版本的 tail。tail不知道您何时真正完成了对文件的写入,因此您的gzip过程也永远不会完成。我不确定当您ctrl-c结束该tail过程时会发生什么,但 gzip 很可能会自行清理并删除它正在处理的文件。我的建议是启动您的原始程序并将输出通过管道传输到 gzip,如下所示:
./my_program | gunzip > new_file.txt
Run Code Online (Sandbox Code Playgroud)
那样的话,gunzip 会my_program在速度变慢时等待,但当文件的真正结束由my_program完成指示时仍然会完成。
您可能需要重写程序以写入 STDOUT 而不是直接写入文件。
编辑:
查看手册页后,可以解决上述三个问题。使用-c <bytes>选项而不是-n <lines>缓解问题 1. 使用-n +0或-c +0缓解问题 3.--pid=<PID>当原始程序(运行方式<PID>)终止时,使用将使尾部终止,从而缓解问题 4。
| 归档时间: |
|
| 查看次数: |
2939 次 |
| 最近记录: |