如果我有一个pipe道命令如
cat myfile | processor_application
在哪里处理器应用程序是从标准读取,大块,处理的东西,是否有可能看到多远,通过文件猫已经得到了?
可能使用lsof?
谢谢!
你可以用pv来做这件事
pv file | processor_application
由于PV通过它的stdin直接到它的标准输出,你不需要使用猫。
编辑当你的程序已经运行,然后findcat进程的PID,然后看看内容
/proc/<PID>/io
它会告诉你它写了多less字节 – wchar。
绝对! pipe道查看器确实确实。 只需将其插入pipe道中即可:
cat myfile | pv | processor_application
在上面的例子中你可以优化掉cat :
pv myfile | processor_application
这有一个提供实际进度指标的优势,因为PV可以直接确定input的大小。 如果您在pipe道中间使用pv,则需要自行提供文件大小以获得准确的进度:
input_process | pv -s 100M -p | processor_application
检查网站的更多选项来定制光伏。
如果进程已经在运行,lsof的size/offset列可能对您有所帮助 – find要检查的进程的PID,然后inputlsof -o -p [PID] 。
如果进程还没有运行,像其他人build议的pv是一个很好的select(假设你的系统有这个实用程序)。