有没有办法在unix / linux上没有缓冲的情况下将输出重定向到文件?

前端之家收集整理的这篇文章主要介绍了有没有办法在unix / linux上没有缓冲的情况下将输出重定向到文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个长时间运行的批处理过程,它将一些调试和进程信息输出到stdout.
如果我只是从一个终端运行,我可以跟踪’它在哪里’,但随后数据变得太多并滚动屏幕.

如果我重定向输出文件’> out.txt’我最终获得了整个输出,但它被缓冲,所以我现在再也看不到它在做什么了.

有没有办法重定向输出,但使其不缓冲其写入?

您可以使用C中的setvbuf调用显式设置标准流的缓冲选项(请参阅 this link),但如果您尝试修改现有程序的行为,请尝试 stdbuf(显然是从版本7.5开始的coreutils的一部分).

这会将stdout缓冲到一行:

stdbuf -oL command > output

这会完全禁用stdout缓冲:

stdbuf -o0 command > output

猜你在找的Bash相关文章