读取正在写入的文件

Dan*_*age 3 unix filesystems

我正在通过 FTP 下载一个大文件,以便我可以在本地系统上处理该文件。处理文件的程序在一次通过中逐行读取文件,从原始文件创建两个新文件。

是否可以在文件完全下载之前开始处理文件?这有什么潜在问题?

注意:我并不担心程序在下载完成之前到达文件末尾——文件的下载速度比程序处理数据的速度要快。

use*_*686 5

如果程序从一开始就按顺序读取数据,这是可能的。(有些,例如unzip,首先尝试查找文件的末尾。)


小智 5

假设文件未压缩,您可以在 Linux 上尝试以下操作:

wget -O - www.fileserver.com/file.ext | tee outputfile.out | ./someprogram
Run Code Online (Sandbox Code Playgroud)

-O -将导致wget输出文件stdout,然后将通过管道传输到该文件,someprogram 同时teewget输出的副本保存到outputfile.