Usando tail
en el modo de seguimiento debería permitirte hacer lo que quieras.
tail -n +0 -f /proc/<pid>/fd/<fd> > abc.deleted
Acabo de hacer una prueba rápida y parece funcionar aquí. No mencionó si su archivo era un archivo binario o no. Mi principal preocupación es que puede que no se copie desde el principio del archivo, pero el argumento -n +0 debería hacerlo incluso para archivos binarios.
Es posible que el comando tail no finalice al final de la descarga, por lo que deberá finalizarlo usted mismo.
En realidad, tuve otro pensamiento. Si usa otro comando para leer /proc/<pid>/fd/<fd>
y mantenga ese programa ejecutándose luego, cuando se complete la descarga, puede copiarlo desde el /proc/<pid2>/fd/<fd2>
apropiado archivo del segundo comando.
Solo inténtalo
less /proc/<pid>/fd/<fd>
en un caparazón separado. Mirar la entrada /proc para el comando less debería mostrarle su archivo eliminado.