El curl
puede admitir omitir los archivos cuando lo usa con -O
y -J
, pero su comportamiento es incoherente.
El -J
(--remote-header-name
) básicamente le dice a la opción -O
(--remote-name
) para utilizar el nombre de archivo especificado Content-Disposition
servidor en lugar de extraer un nombre de archivo de la URL. De esta forma, el curl
no sabe realmente qué nombre de archivo devolverá el servidor, por lo que puede ignorar el archivo existente por precaución de seguridad.
Fuente: Re: -J "Refusing to overwrite..."
Por ejemplo:
$ curl -LJO -H 'Accept: application/octet-stream' 'https://api.github.com/repos/x/y/releases/assets/12345
Warning: Refusing to overwrite my_file.bin: File
Warning: exists
curl: (23) Failed writing body (0 != 16384)
Sin embargo, como ya se ha mencionado, su comportamiento es impredecible y no funciona para todos los archivos.
muy útil, gracias por señalarlo. pero estoy haciendo esto a través de php, ¿cómo puedo ejecutar esa declaración if a través de php? – thevoipman
No sé PHP en la cabeza, pero estoy seguro de que tiene un mecanismo relativamente simple para ver si existe un archivo. –