Pnetworkingecir nombre de file antes de download desde una URL, en script de shell

Tengo un script de shell que descarga files de una list usando wget , y se reanuda automáticamente si hay algún error no crítico (debido a WIFI inestable durante tormentas).

El problema es que quiero escribir en un file filename.part y luego eliminar la extensión .part una vez completada (sobrescribir y se manejan en ese punto). Esto funciona para URL simples como http://myserver.org/myfile.doc , pero no adivina por completo un nombre de file como http://myserver.org/index.php?file_id=foo . (mi método intentaría escribir en index.php.part lugar del resultado deseado)

Puedo get wget get el nombre de file "final" automáticamente y escribir en él, pero eso no me deja usar la opción -O para save con una extensión diferente, no deja ningún control.

Entonces mi pregunta es, ¿hay alguna forma (o herramienta) estándar para get el nombre de file "final" en una URL de descarga para poder escribir en un file con el mismo nombre pero con una extensión adicional? (usando -O en wget o -o en curl, como wget $URL -O "$URL_GUESSED_FILENAME.part" )

Mis herramientas son wget o curl, sin preference, incluso si actualmente uso wget. Alternativamente, si hay una manera de hacerlo en Python, puedo aceptar eso también.

Wget puede almacenar http://myserver.org/index.php?file_id=foo en un nombre de file proporcionado por el server, por ejemplo, foo.ext . Usualmente esto requiere la opción wget --content-disposition . Si desea download a -O foo.ext.part , -O foo.ext.part debe averiguarlo. Esto se puede hacer descargando primero el encabezado http, que contendrá el nombre del file.

Con wget puedes get la línea de encabezado correspondiente con un command como este:

 wget --spider --server-response URL 2>&1 | grep -i content-disposition 

Necesita un análisis trivial en el encabezado para extraer el nombre del file. Es opcional, por supuesto. Si no está presente, no tiene suerte y wget creará un nombre de file basado en index.php . Puede usar eso para -O entonces.