Necesito descargar un archivo desde un servidor HTTP, pero solo si ha cambiado desde la última vez que lo descargué (por ejemplo, a través de If-Modified-Since
encabezamiento). También necesito usar un nombre personalizado para el archivo en mi disco.
¿Qué herramienta puedo usar para esta tarea en linux?
wget -N
no se puede usar porque -N
no se puede utilizar con -O
.
Respuestas:
Considere usar
curl
en lugar dewget
:man curl
dice:Si
$file
no necesariamente preexistente, deberá hacer uso del-z
bandera condicional, utilizandotest -e "$file"
:(Tenga en cuenta que no citamos la expansión de
$zflag
aquí, como queremos que se someta a división en 0 o 2 tokens).fuente
El interruptor wget
-N
solo obtiene el archivo si ha cambiado, por lo que un posible enfoque sería utilizar el sencillo-N
interruptor que obtendrá el archivo si es necesario, pero lo deja con el nombre incorrecto. Luego crea un enlace duro usando elln -P
comando para vincularlo a un "archivo" con el nombre correcto. El archivo vinculado tiene los mismos metadatos que el original.La única limitación es que no puede tener enlaces duros entre los límites del sistema de archivos.
fuente
Python 3.5+ script para envolver el comando curl:
fuente
chain
:)