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

我有一个长时间运行的批处理过程,它将一些调试和进程信息输出到stdout.
如果我只是从一个终端运行,我可以跟踪’它在哪里’,但随后数据变得太多并滚动屏幕.

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

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

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

这会将stdout缓冲到一行:

stdbuf -oL command > output

这会完全禁用stdout缓冲:

stdbuf -o0 command > output

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...