我想从 lftp 访问进度信息。目前,我正在使用 curl ,如下所示:
curl http://example.com/file -o file -L 2> download.log
Run Code Online (Sandbox Code Playgroud)
这会将 curl 的进度信息写入 download.log 文件,我可以通过拖尾获取实时进度。
但是同样的方法不适用于 lftp,无论是 stdout 还是 stderr。我最终得到一个空的 download.log 文件,直到传输完成。
lftp -e 'get http://example.com/file;quit' 2> download.log
lftp -e 'get http://example.com/file;quit' 1> download.log
Run Code Online (Sandbox Code Playgroud)
当我不重定向输出时,我会在屏幕上看到进度。当我重定向输出时,我不再在屏幕上看到进度,但在 download.log 中没有显示任何内容。文件传输完成后,我看到了最终结果,就像这样 - 但之前什么都没有:
97618627 bytes transferred in 104 seconds (913.1K/s)
Run Code Online (Sandbox Code Playgroud)
lftp 是否对其输出做了一些不寻常的事情 - 打印到屏幕而不打印到 stdout/stderr?除了重定向 stdout/stderr 之外,还有其他捕获屏幕输出的方法吗?